Javascript ne fonctionne pas dans une activité WebView

J'ai une Activité qui a juste un WebView , qui contient HTML, CSS et Code Javascript.

Il semble qu'il y ait un problème avec l' accès de Javascript à la taille de l' écran de la vue. LogCat dit:

  • Quand utiliser un thread / service dans Android?
  • Android Studio pour chaque macro
  • Exception android.content.res.Resources $ NotFoundException: fichier res / drawable / my.xml à partir de l'ID de ressource desséchable
  • L'arrêt Android Mediarecorder a échoué
  • Accédez au client google plus à partir de plusieurs activités
  • Comment augmenter la taille d'un élément focalisé actuel sur un recyvlerview?
  • (Tag: Web Console): Uncaught TypeError: Cannot call method 'getWidth' of undefined at file:///android_asset/Prospekte/grund/html5-player/js/epaper-mobile.js:20 

    Lorsque je regarde le fichier js, il y a: var f=this.body.getWidth();

    Il est curieux que le code fonctionne parfois . L'epaper est bien illustré. Mais la plupart du temps, il y a cette erreur.

      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"); 

    La mise en page est:

      <?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> 

    J'ai changé la taille du webView parce que je pensais que cela pourrait être la solution … mais cela ne fonctionne pas non plus avec dp.

    Quelqu'un a-t-il une idée?

  • Mettre à jour une application Android (sans Google Play)
  • Changer la taille de Android-Seekbar?
  • Exécuter TriggerIO Android ForgeInspector
  • Canvas Eraser trace une ligne noire
  • Utilisation de la concurrence Android
  • Comment choisir le bouton pour cliquer sur Robotium pour une boîte de dialogue d'alerte?
  • 4 Solutions collect form web for “Javascript ne fonctionne pas dans une activité WebView”

    Définissez également ce paramètre pour votre webView:

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

    Pour plus de détails, reportez-vous à la réponse dans le lien suivant: ERROR / Web Console: Uncaught TypeError: Impossible d'appeler la méthode 'getItem' de null à http://m.youtube.com/:844

    Mise à jour: ou ajouter ceci pourrait aider:

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

    Vous devez implicitement activer l'exécution Javascript dans votre WebView, car cela pourrait provoquer des vulnérabilités XSS et autres.

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

    De plus, je préfère mettre mon WebViewClient via

     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); 

    Pour me laisser restreindre l'utilisation de seulement mes sites.

    J'ai le même problème sur Android 3.2. Une solution qui fonctionne pour moi (jolie) est de mettre un sommeil et d'appeler un autre loadUrl, essayez avec plus de temps si 300 ms ne suffit pas:

     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"); 

    J'ai eu le même problème avec mon projet Mo Da Browser. J'ai ajouté ces deux lignes:

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

    WvOptions est simplement webview.getSettings () stocké dans une var. La deuxième ligne semble avoir résolu le problème. La première ligne permet aux utilisateurs de contrôler la taille de la page Web qui en résulte. Vous pouvez ajouter l'option "ouvrir en aperçu" si vous avez apprécié le résultat. Cela ne m'a pas aidé alors j'ai utilisé l'option de zoom.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.