「スクリーンワン」に配置されたボタンをクリックした後で、Kivy内のWebページを開く簡単なアプリケーションを作ろうとしています。Python Kivy - ネイティブウェブブラウザでURLを開くアプリケーション
だから私はこれを試してみました...と私はAPKを起動したときに(でビルドIを基準として、このトピック(Python - Showing a web browser/iframe right into the app)を使用するが、私はマイケルが提供するコードを使用する方法を理解していなかった...
Buildozer)それは動作しませんでした: ')
import kivy
kivy.require('1.9.2')
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import ScreenManager, Screen
# MICHAEL'S CODE
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/')
# END OF MICHAEL'S CODE
Builder.load_string('''
<ScreenOne>:
BoxLayout:
Label:
text: "SCREEN 1"
Button:
text: "GO GO GO TO GOOGLE !"
on_press: root.open_browser()
<ScreenTwo>:
BoxLayout:
Label:
text: "SCREEN 2"
Button:
text: "GO GO GO TO SCREEN 1"
on_press:
root.manager.transition.direction = "right"
root.manager.transition.duration = 1
root.manager.current = "screen_one"
''')
class ScreenOne(Screen):
def open_browser(self):
return Wv()
class ScreenTwo(Screen):
pass
screen_manager = ScreenManager()
screen_manager.add_widget(ScreenOne(name="screen_one"))
screen_manager.add_widget(ScreenTwo(name="screen_two"))
class BrowserApp(App):
def build(self):
return screen_manager
app = BrowserApp()
app.run()
私がそれを起動すると、アプリはクラッシュせずに閉じるだけです。
私は間違っていますか?
06-13 12:54:47.559 7429 7510 I python : ImportError: No module named android
06-13 12:54:47.579 7429 7510 I python : Python for android ended.
あなたは、このようなコードが何をするか知っている限り、コピー&ペーストが実際に何かを実装するための悪い方法である理由です「私は、コードの使用方法を理解していませんでした」。あなたはいくつかの**基本的な[例](https://github.com/kivy/pyjnius/)最初に見てください:) "...それは動作しませんでした: ')私は間違っていますか?それは['adb logcat'](https://developer.android.com/studio/command-line/logcat.html)のためのものです。誰もあなた自身のデバイスでコンパイルして実行するので、ログを提供する必要があります。また、Javaクラスは実際に[documentation](https://developer.android.com/reference/android/webkit/package-summary.html)を持っています – KeyWeeUsr
@KeyWeeUsrええ、私はコピー&ペーストが悪いことを知っています...だから私は勉強を始めますあなたが提供したリンクのマイケルコード。一方、私はadb logcatを作ってこれを手に入れました:https://drive.google.com/file/d/0B8_6xoiJkXbGWjRZbDZkR0ZiTjg/view?usp=sharing – Dahaarl