1

我有一个使用 android 4.03 - API Level 15 开发的应用程序。它有一个 webView,我想用它来显示一个带有一些 svg 内容的 html 页面。有些 svg 内容直接嵌入到 html 中,有些则使用 javascript 动态呈现。

我有一个运行 android 2.2 的华为 S7 平板电脑。我添加了一个向后兼容包,因此我可以在选项卡中运行我的应用程序。

现在,当我创建 html 页面并在 dektop 浏览器中运行它时,它完美地呈现了所有 svg 内容。当我在平板电脑中运行应用程序时,它不显示任何 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 是否存在兼容性问题?

4

2 回答 2

4

Android 3.0 之前不支持 SVG,所以你必须找到一些解决方法。

这篇博文解释了两个用于 SVG 的 Javascript polyfill。

http://www.kendoui.c​​om/blogs/teamblog/posts/12-02-17/using_svg_on_android_2_x_and_kendo_ui_dataviz.aspx

于 2013-09-12T06:17:06.307 回答
0

如果你添加这个怎么办:

webView.getSettings().setPluginState(PluginState.ON);

我能看到的唯一参数可能会产生影响。

于 2013-09-12T06:04:48.837 回答