Aplicación android se estrella en el cambio de url de vista web
Similar a esta pregunta , pero las soluciones no funcionan en mycase.
La aplicación para Android se está bloqueando al ejecutar la función webview.loadUrl
Obteniendo el siguiente error al cerrar:
- Mostrar el teclado virtual en AlertDialog con un WebView dentro (Android)
- Capas dentro de un HTML dentro de una webview
- Cómo agregar crosswalk webview en mi propio módulo de biblioteca de Android?
- Framework7 dentro de páginas de webview que no se cargan
- ERROR / Web Console: Uncaught TypeError: No se puede llamar al método 'getItem' de null en http://m.youtube.com/:844
E / AndroidRuntime (1593): Causado por: java.lang.Throwable: Advertencia: Un método WebView fue llamado en el hilo 'WebViewCoreThread'. Todos los métodos WebView deben ser llamados en el subproceso de la interfaz de usuario. Las versiones futuras de WebView pueden no admitir el uso en otros subprocesos.
EDIT: Intentando ahora ejecutar la función en runOnUiThread (nuevo Runnable () {}) pero obteniendo errores y teniendo problemas con dónde ingresar runOnUiThread dentro del contexto.
Aquí está el código completo:
public class MyJavaScriptInterface { @JavascriptInterface public void androidFieldPrompt(String title, String msg, final String funct) { final EditText input = new EditText(MainActivity.this); AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this); alert.setTitle(title); alert.setMessage(msg); alert.setView(input); alert.setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { String value = input.getText().toString(); // ERROR IS BEING THROWN HERE webView.loadUrl("javascript:window."+funct+"('"+value+"')"); return; } }); alert.show(); } }
- LinearLayout de un WebView y un botón
- ¿Hay alguna forma de detectar errores en la consola Web?
- Superposición azul de OnClick
- Espacios en blanco usando la vista web de android dentro de scrollview con una red móvil de jQuery
- Android WebView causa la violación de StrictMode
- Cómo poblar webview en android con texto sin formato de base de datos y ser capaz de manejar caracteres de nueva línea
- La altura de la webview crece indefinidamente dentro de un nestedScrollView
- ¿Puedo usar componentes de polímero / web en una aplicación androide nativa sin Cordova?
E / AndroidRuntime (1593): Causado por: java.lang.Throwable: Advertencia: Un método WebView fue llamado en el hilo 'WebViewCoreThread'. Todos los métodos WebView deben ser llamados en el subproceso de la interfaz de usuario. Las versiones futuras de WebView pueden no admitir el uso en otros subprocesos.
Como señala el error .. usted está llamando a los métodos de webview en Thread no UI (dentro de un oyente de clic).
debe utilizar runOnUiThread para utilizar el hilo principal al llamar al método de vista web, dentro de onClick
MainActivity.this.runOnUiThread(new Runnable(){ @Override public void run() { String value = input.getText().toString(); webView.loadUrl("javascript:window."+funct+"('"+value+"')"); return; } });
Como alternativa, puede utilizar Runnable para utilizar WebView en el subproceso de interfaz de usuario y eliminar el problema:
webView.post(new Runnable() { @Override public void run() { String value = input.getText().toString(); webView.loadUrl("javascript:window."+funct+"('"+value+"')"); } });