Skip to content
This repository has been archived by the owner on Aug 7, 2022. It is now read-only.

Commit

Permalink
Merge pull request #10 from vesellov/master
Browse files Browse the repository at this point in the history
attempt to use WebView
  • Loading branch information
vesellov authored Nov 22, 2019
2 parents 169adee + 500e8eb commit 9a1353f
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 4 deletions.
10 changes: 8 additions & 2 deletions buildozer.spec
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,9 @@ version = 1.0.1
# version.filename = %(source.dir)s/main.py

# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
requirements = kivy,service_identity,pyparsing,appdirs,psutil,cffi,six,pycryptodome,attrs,hyperlink,idna,cryptography,automat,twisted==19.7.0,python3
# comma separated e.g. requirements = sqlite3,kivy,
requirements = kivy,service_identity,pyparsing,appdirs,cffi,six,pycryptodome,attrs,hyperlink,idna,cryptography,automat,android,twisted==19.7.0,python3
# requirements = kivy,python3
# requirements = incremental,kivy
# there is an issue with incremental/twisted build... first you need to build only incremental and then twisted in second run

Expand Down Expand Up @@ -89,6 +90,8 @@ android.presplash_color = #FFFFFF
# (list) Permissions
android.permissions = INTERNET, READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE

android.apptheme = "@style/Theme.Translucent"

# (int) Target Android API, should be as high as possible.
# android.api = 27

Expand Down Expand Up @@ -153,6 +156,8 @@ android.accept_sdk_license = True
# bootstrap)
#android.add_aars =

#android.bootstrap = webview

# (list) Gradle dependencies to add (currently works only with sdl2_gradle
# bootstrap)
#android.gradle_dependencies =
Expand Down Expand Up @@ -227,6 +232,7 @@ p4a.local_recipes = ./recipes/

# (str) Bootstrap to use for android builds
# p4a.bootstrap = sdl2
# p4a.bootstrap = webview

# (int) port number to specify an explicit --port= p4a argument (eg for bootstrap flask)
#p4a.port =
Expand Down
47 changes: 45 additions & 2 deletions src/main.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,25 @@
# coding: utf8
__version__ = '0.2'

#------------------------------------------------------------------------------

import kivy
kivy.require('1.9.1') # replace with your current kivy version !

#------------------------------------------------------------------------------

from kivy.app import App
from kivy.lang import Builder
from kivy.utils import platform
from kivy.uix.widget import Widget
from kivy.clock import Clock

from android.permissions import request_permissions, Permission
from jnius import PythonJavaClass, java_method, autoclass

from jnius import autoclass
from android.permissions import request_permissions, Permission
from android.runnable import run_on_ui_thread

#------------------------------------------------------------------------------

SERVICE_NAME = u'{packagename}.Service{servicename}'.format(
packagename=u'org.bitdust_io.bitdust',
Expand All @@ -32,14 +40,48 @@
on_press: app.stop_service()
'''

#------------------------------------------------------------------------------

RootApp = None

#------------------------------------------------------------------------------

class BitDustUI(Widget):
def __init__(self, **kwargs):
super(BitDustUI, self).__init__(**kwargs)
Clock.schedule_once(self.create_webview, 0)

@run_on_ui_thread
def create_webview(self, *args, **kwargs):
print('BitDustUI.create_webview')
WebView = autoclass('android.webkit.WebView')
WebViewClient = autoclass('android.webkit.WebViewClient')
activity = autoclass('org.renpy.android.PythonActivity').mActivity
webview = WebView(activity)
settings = webview.getSettings()
settings.setJavaScriptEnabled(True)
settings.setUseWideViewPort(True) # enables viewport html meta tags
settings.setLoadWithOverviewMode(True) # uses viewport
settings.setSupportZoom(True) # enables zoom
settings.setBuiltInZoomControls(True) # enables zoom controls
wvc = WebViewClient()
webview.setWebViewClient(wvc)
activity.setContentView(webview)
webview.loadUrl('https://bitdust.io')

#------------------------------------------------------------------------------

class BitDustApp(App):

def build(self):
print('BitDustApp.build')
global RootApp
RootApp = self
self.icon = 'bitdust.png'
self.service = None
self.root = Builder.load_string(KV)
self.ui = BitDustUI()
self.root.add_widget(self.ui)
return self.root

def on_start(self):
Expand Down Expand Up @@ -81,6 +123,7 @@ def request_app_permissions(self):
])
print('BitDustApp.request_app_permissions : %r' % ret)

#------------------------------------------------------------------------------

if __name__ == '__main__':
BitDustApp().run()

0 comments on commit 9a1353f

Please sign in to comment.