Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python应用程序框架在应用程序内部创建webview_Python_Ios_Webview_Uiwebview_Kivy - Fatal编程技术网

Python应用程序框架在应用程序内部创建webview

Python应用程序框架在应用程序内部创建webview,python,ios,webview,uiwebview,kivy,Python,Ios,Webview,Uiwebview,Kivy,我需要在我的kivy应用程序中嵌入一个webview,或者在其他python应用程序框架中嵌入一个webview,该框架支持android和IOS。我还希望保存cookies以便登录,这样用户就不必多次登录。这是可能的还是我应该寻找另一种方法来实现这一点?感谢您提前回复 不幸的是,没有“通用”的方法来做到这一点。然而,这仍然是可能的。不幸的是,也没有一个kivy“本地”方法 Android: 对于android,您可以使用: iOS: 不幸的是,我没有自己的iOS设备,所以我不能测试这些 该模块

我需要在我的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)