安卓 WebView 不显示 JavaScript 动画

5

我正在尝试展示一个地图,其中动画显示了多个区域的百分比。但是javascript(在浏览器中有效)没有显示任何动画或百分比。webmpa.generateJs()生成用于动画显示百分比的javascript代码,而initialize函数用于绘制地图。

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);
2个回答

1
你需要使用WebChromeClient来实现你的目的。
 webView.setWebChromeClient(new WebChromeClient());

这可能会对你有所帮助。

地图上仍未显示任何数字。我还需要编辑/删除其他内容吗? - Stefan

1

补充Satish的回答,如果你在使用proguard,请在项目的proguard文件中添加以下内容:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接