Python应用程序框架在应用程序内部创建webview
我需要在我的kivy应用程序中嵌入一个webview,或者在其他python应用程序框架中嵌入一个webview,该框架支持android和IOS。我还希望保存cookies以便登录,这样用户就不必多次登录。这是可能的还是我应该寻找另一种方法来实现这一点?感谢您提前回复 不幸的是,没有“通用”的方法来做到这一点。然而,这仍然是可能的。不幸的是,也没有一个kivy“本地”方法 Android: 对于android,您可以使用: iOS: 不幸的是,我没有自己的iOS设备,所以我不能测试这些 该模块似乎包含实现此目的的方法:Python应用程序框架在应用程序内部创建webview,python,ios,webview,uiwebview,kivy,Python,Ios,Webview,Uiwebview,Kivy,我需要在我的kivy应用程序中嵌入一个webview,或者在其他python应用程序框架中嵌入一个webview,该框架支持android和IOS。我还希望保存cookies以便登录,这样用户就不必多次登录。这是可能的还是我应该寻找另一种方法来实现这一点?感谢您提前回复 不幸的是,没有“通用”的方法来做到这一点。然而,这仍然是可能的。不幸的是,也没有一个kivy“本地”方法 Android: 对于android,您可以使用: iOS: 不幸的是,我没有自己的iOS设备,所以我不能测试这些 该模块
import ios
url = "http://www.google.com"
ios.IOSWebView().open(url, width, height)
另一个解决方案是访问Objective-C类,这些类通常在iOS上实现webview。我不想粘贴未经测试的代码,因此我建议您查看底部的Michael Galaxy和Julez的答案。谢谢您的答案!似乎kivy ios只支持Mac,我正在使用windows机器进行开发。Pyobjus给了我安装方面的问题,但无法正常工作。我明白了。。。请注意,这两个版本都不会在您的桌面上工作。android版本要求提供java类。windows计算机上显然不是这样。然而,根据reddit post的说法,kivy ios版本应该可以在ios设备上运行。
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.kivy.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()
import ios
url = "http://www.google.com"
ios.IOSWebView().open(url, width, height)