I have a script which if helpful to people answering questions, is using kivy.
I want to have it show a iframe kind of thing right into it when run, instead of opening
the browser. For example something like this:
def browser():
url = "google.com"
iframe(url)
browser()
Obviously this wouldnt work as python is not html. Keep in mind, I am not trying to run
this script on the web, but on the kivy launcher. As intended, it should not open
the webbrowser but instead show the page in a box built right into the script.
解决方案
Here's an actual running example which works right inside the "Kivy Launcher" app:
import kivy
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 jnius import autoclass
from android.runnable import run_on_ui_thread
WebView = autoclass('android.webkit.WebView')
WebViewClient = autoclass('android.webkit.WebViewClient')
activity = autoclass('org.renpy.android.PythonActivity').mActivity
class Wv(Widget):
def __init__(self, **kwargs):
super(Wv, self).__init__(**kwargs)
Clock.schedule_once(self.create_webview, 0)
@run_on_ui_thread
def create_webview(self, *args):
webview = WebView(activity)
webview.getSettings().setJavaScriptEnabled(True)
wvc = WebViewClient();
webview.setWebViewClient(wvc);
activity.setContentView(webview)
webview.loadUrl('http://www.google.com')
class ServiceApp(App):
def build(self):
return Wv()
if __name__ == '__main__':
ServiceApp().run()