5 votes

Android WebView n'affiche pas l'animation javascript

J'essaie de montrer une carte qui anime des pourcentages pour plusieurs zones de la carte. Mais le javascript (qui fonctionne dans le navigateur) ne montre aucune animation ou pourcentage du tout. La fonction webmpa.generateJs() génère le javascript pour animer les pourcentages et la fonction initialize est utilisée pour dessiner la carte.

WebSettings settings = webView.getSettings();
settings.setAppCacheEnabled(true);
settings.setDomStorageEnabled(true);
settings.setDatabaseEnabled(true);
settings.setJavaScriptEnabled(true);
final WebMap webMap = new WebMap();
webView.addJavascriptInterface(webMap.getInterface(getActivity().getApplication(),this), "Android");

webView.setWebViewClient(new WebViewClient() {

    public void onPageFinished(WebView view, String url) {
            Log.d(TAG,webMap.generateJs());
            webView.loadUrl("javascript:" + webMap.generateJs());
            webView.loadUrl("javascript:initialize();");
    }
});

webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
webView.setBackgroundColor(Color.TRANSPARENT);

webView.loadUrl(MAP_URL);

1voto

Sathish Kumar J Points 2654

Vous devez utiliser WebChromeClient pour vos besoins.

 webView.setWebChromeClient(new WebChromeClient());

Cela peut vous aider

1voto

Ashish Ranjan Points 4152

Pour compléter la réponse de Satish, si vous utilisez proguard, utilisez ceci dans le fichier proguard de votre projet :

-keepclassmembers class fqcn.of.javascript.interface.for.webview {
   public *;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X