我们将开发一个用于显示autocad的android应用程序
使用ecma脚本的svg格式的图形文件。我们有
在模拟器中测试了该应用程序,并在webview中打开了svg文件。
我们的问题是XML标记中的ecmascript不在webview中执行
在android中。我们知道android仅从3.0开始支持SVG。做
它不支持svg中的ecmascript吗?

提前致谢

        final String mimeType = "text/html";
        final String encoding = "utf-8";
        final String html = "<p><img height=\"600px\" width=\"600px \"src=\"file:///android_asset/drawing3.svg\" /></p>";


        WebView wv = (WebView) findViewById(R.id.webview_component);
        wv.getSettings().setJavaScriptEnabled(true);
        wv.loadDataWithBaseURL("fake://not/needed", html, mimeType, encoding, "");

拉加兹
涩部

最佳答案

Android(3.0及更高版本)通过ECMAScript支持SVG。

问题在于,当在<img>标记中添加svg时,svg中的ecmacript不会执行。我还在多个 table 面浏览器中对其进行了测试,并且当svg位于<img>标记中时,在其中任何一个中均未执行ecmascript。

有5种方法可以在html中添加svg:

  • 使用<img>标签
  • 将其添加为图像
  • 嵌入<embed>标记
  • 嵌入<iframe>标记
  • 嵌入<object>标记
  • 将svg代码直接嵌入html中(使用<svg>标签)

  • 仅当svg嵌入在<embed><iframe><object>标记中时,才执行svg中的ecmascript。将svg代码直接嵌入<svg>标记时,可能需要进行一些代码更改(例如,将脚本移动到html中的其他位置),但它也应该起作用。

    10-07 19:47
    查看更多