android - Android 中的 SVG 支持

标签 android webview svg

我们将开发一个 android 应用程序来展示 autocad 使用 ecma 脚本的 svg 格式的绘图文件。我们有 在模拟器中测试应用程序并在 webview 中打开 svg 文件。 我们的问题是 XML 标签中的 ecmascript 没有在 webview 中执行 在安卓中。我们知道 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。

问题是当 svg 添加到 <img> 时,svg 中的 ecmacript 没有执行。标签。我还在几个桌面浏览器中测试了它,当 svg 在 <img> 中时标记,其中任何一个都没有执行 ecmascript。

在html中添加svg有5种方式:

  1. 将其添加为带有 <img> 的图像标签
  2. 将其嵌入 <embed>标签
  3. 将其嵌入 <iframe>标记
  4. 将其嵌入 <object>标签
  5. 将 svg 代码直接嵌入到 html 中(使用 <svg> 标签)

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

关于android - Android 中的 SVG 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6677397/

相关文章:

html - SVG 多边形描边的错误

javascript - 将 y 轴显示为百分比?

java - android中如何显示未连接互联网

android - 部署后在设备上的应用程序菜单中看不到 android 应用程序图标

Android webView - 如何更改 webView 对话框的背景颜色?

javascript - android webview使用本地javascript文件加载远程html文件

android - 如何设置 udev 规则以使用 Android Studio 调试物理 android 设备?

java - 我可以在 UI 线程之外使用 getFilesDir

javascript - 如何将变量从 webview Javascsript 传递到 Xamarin Forms 代码?

将 SVG 形状添加到 Raphael 组火灾事件中,就像分开一样