我有一个用android 4.03开发的应用程序--APP级别15.它有一个webView,我想用它来显示带有一些svg内容的html页面。一些svg内容直接嵌入到html中,一些内容是使用javascript动态呈现的。
我有一台运行android 2.2的华为S7平板电脑。我添加了一个向后兼容包,以便我可以在选项卡中运行我的应用程序。
现在,当我创建html页面并在dektop浏览器中运行它时,它完美呈现所有svg conent。 当我在平板电脑上运行应用程序时,它不会显示任何svg内容。它只显示一个白色背景。 但是,当我在我的朋友nexus 7平板电脑和Android 4.3中尝试相同的应用程序时,它完美地显示了webView中的所有svg内容。
我使用此代码初始化webView
WebView mapView;
mapView = (WebView) findViewById(R.id.mapview);
mapView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
}
});
WebSettings s = mapView.getSettings();
s.setLoadWithOverviewMode(true);
s.setLoadsImagesAutomatically(true);
s.setUseWideViewPort(true);
s.setJavaScriptEnabled(true);
s.setSupportZoom(true);
s.setBuiltInZoomControls(true);
File externalStorage = Environment.getExternalStorageDirectory();
String url = "file:///" + externalStorage + "/floor_one.html";
mapView.loadUrl(url);
Android 2.2 webView与SVG有兼容性问题吗?
答案 0 :(得分:4)
Android 3.0之前不支持SVG,因此您必须找到一些解决方法。
此博客文章解释了两个用于SVG的Javascript polyfill。
答案 1 :(得分:0)
如果你添加这个怎么办:
webView.getSettings().setPluginState(PluginState.ON);
我唯一能看到你没有的参数可能会产生影响。