2016-06-28 39 views
5

我想显示一张地图,它在地图上为几个区域设置动画百分比。但是JavaScript(在浏览器中工作)根本不显示任何动画或百分比。 webmpa.generateJs()生成javascript来为百分比设置动画,函数initialize用于绘制地图。Android WebView不显示javascript动画

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

回答

1

您必须为您的目的使用WebChromeClient。

webView.setWebChromeClient(new WebChromeClient()); 

这可能有助于你

+0

它仍然显示了没有号码地图。我应该编辑/删除其他东西吗? – Stefan

1

只需添加到萨蒂什南比亚的回答,如果你正在使用ProGuard使用这种在项目的proguard的文件:

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