Cómo guardar la URL actual en Android Kivy Application
Mi código:
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 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('www.google.com') class ServiceApp(App): def build(self): return Wv() def on_pause(self): return True def on_resume(self): return Wv() if __name__ == '__main__': ServiceApp().run()
La aplicación funciona muy bien, pero quiero guardar la URL actual cuando on_pause evento de fuego y, a continuación, cuando on_resume evento quiero volver a esa URL.
- Escalado de la vista de Android 4.1 (setInitialScale, meta-escala inicial no funciona)
- ¿Puede una WebView de Android hacer una animación translationX con aceleración de hardware?
- Android WebView JellyBean -> No debería suceder: no se encontraron nodos de pruebas basadas en rect
- 'Webpage not available' con WebView.loadData () SOLAMENTE en el emulador
- RecyclerView se desplaza automáticamente a WebView / Fresco Elemento SimpleDraweeView
No me imagino cómo hacer esto.
Sugerencias?
- Android webView - cómo cambiar el color de fondo del diálogo webView?
- Twitter: recuperar el código PIN de la webview. Androide
- Lógica para usar varias vistas web en TabLayout para manejar problemas de memoria
- Archivos locales de Android WebView + AJAX
- Restaurar historial y página actual al reanudar la visualización web
- React-Native: Descarga y carga de archivos desde android webview
- Las transmisiones en directo de Youtube en la vista web de Android son nerviosas
- Compruebe la conexión a Internet en Android WebView (Córdoba)
EDIT : Tenía curiosidad, y fui a comprobar las cosas. De hecho, obtengo una java.lang.RuntimeException: Probable bloqueo detectado debido a la API de WebView que se llama en el hilo incorrecto mientras se bloquea el subproceso de interfaz de usuario. Es necesario subclasificar WebViewClient y no estoy seguro de cómo hacerlo en jnius.
Creo que puede acceder a su url sin ningún problema. El árbol de widgets se parece a esto: ServiceApp -> Wv Pero no hiciste de la webview un miembro de Wv. Usted probablemente debería hacer:
@run_on_ui_thread def create_webview(self, *args): self.webview = WebView(activity) self.webview.getSettings().setJavaScriptEnabled(True) wvc = WebViewClient(); self.webview.setWebViewClient(wvc); activity.setContentView(self.webview) self.webview.loadUrl('www.google.com')
Después de esto, creo que usted podría hacer:
class ServiceApp(App): def build(self): self.wv = Wv() return wv def on_pause(self): # do something with url, I don't know the android API that well # from http://developer.android.com/reference/android/webkit/WebView.html self.wv.webview.getUrl() return True def on_resume(self): # Here I have doubts why you create another widget but ok self.wv = Wv() return wv
Hay muchas partes en las que no estoy seguro, y las cosas necesitan pruebas para asegurar que es seguro proceder así, pero es un comienzo. Mis 2 centavos.