Javascript no funciona en una actividad de WebView

Tengo una actividad que tiene sólo un WebView , que contiene código HTML, CSS y Javascript.

Parece que hay un problema con el acceso de Javascript al tamaño de pantalla de la vista. LogCat dice:

(Tag: Web Console): Uncaught TypeError: Cannot call method 'getWidth' of undefined at file:///android_asset/Prospekte/grund/html5-player/js/epaper-mobile.js:20 

Cuando miro el archivo js, ​​hay: var f=this.body.getWidth();

Lo curioso es que a veces el código funciona . El epaper se muestra bien. Pero la mayoría de las veces hay este error.

  setContentView(R.layout.prospekt_layout); final Activity activity = this; mWebView = (WebView) findViewById(R.id.prospekt_webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setDomStorageEnabled(true); mWebView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { activity.setProgress(progress * 1000); } }); mWebView.setWebViewClient(new WebViewClient() { @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { // Handle the error } @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); mWebView.loadUrl("file:///android_asset/Prospekte/modKachel/mobile.html"); 

El diseño es:

  <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent" android:layout_width="match_parent" > <WebView android:id="@+id/prospekt_webview" android:layout_width="900px" android:layout_height="900px" /> </LinearLayout> 

He cambiado el tamaño de la webView causa que pensé que esto podría ser la solución .. pero no es trabajar con dp tampoco.

Alguien tiene en la idea?

Establezca esta configuración también para su webView:

 WebSettings settings = webView.getSettings(); settings.setDomStorageEnabled(true); 

Para más detalles consulte la respuesta en el siguiente enlace: ERROR / Web Console: Uncaught TypeError: No se puede llamar al método 'getItem' de null en http://m.youtube.com/:844

Actualizar: o agregar esto podría ayudar:

 webView.loadDataWithBaseURL("fake://fake.com", myString, "text/html", "UTF-8", null); 

Debe implícitamente habilitar la ejecución de JavaScript en su WebView, ya que esto podría causar XSS y otras vulnerabilidades.

 web = new WebView(this); web.getSettings().setJavaScriptEnabled(true); 

Además, prefiero establecer mi WebViewClient a través de

 WebViewClient webViewMainWebClient = new WebViewClient() { // Override page so it's load on my view only @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // Return true to override url loading (In this case do nothing). return false; } } web.setWebViewClient(this.webViewMainWebClient); 

Para permitirme restringir el uso de sólo mis sitios.

Tengo el mismo problema en android 3.2. Una solución que funciona para mí (bastante feo) es poner un sueño y llamar a otro loadUrl, tratar con más tiempo si 300ms no es suficiente:

 myWebView.loadUrl("file:///android_asset/gabarit.html"); try { Thread.sleep(300); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } myWebView.loadUrl("file:///android_asset/gabarit.html"); 

Tuve el mismo problema con mi proyecto Mo Da Browser. He añadido estas dos líneas:

  wvOptions.setBuiltInZoomControls(true); wvOptions.setUseWideViewPort(true); 

WvOptions es simplemente webview.getSettings () almacenado en una var. La segunda línea parece haber resuelto el problema. La primera línea proporciona a los usuarios el control del tamaño de la página web resultante. Puede agregar la opción "Abrir en vista general" si le ha gustado el resultado. Eso no me ayudó así que usé la opción de zoom.

  • Android WebView no carga jQuery
  • Android WebView se bloquea al hacer clic en un enlace
  • Android: identifica si la vista en la Web reproduce o no el sonido
  • ¿Por qué Android WebView rechaza la entrada de usuarios?
  • ¿Cómo mostrar la página de contenido Html sabia usando webview en android?
  • Transmisión de la matriz de la actividad a Javascript
  • Android Webview: Ejecución de javascript desde el método java llamado desde javascript
  • Se bloquea el video HTML 5 al ir a pantalla completa
  • Webview no puede cargar archivo html desde la tarjeta sd
  • Cómo mostrar el progreso al cargar una url a webview en android?
  • Vista web de Android "Sincronizar sintaxis: Error inesperado ILEGAL"
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.