我们将开发一个 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种方式:
- 将其添加为带有
<img>
的图像标签 - 将其嵌入
<embed>
标签 - 将其嵌入
<iframe>
标记 - 将其嵌入
<object>
标签 - 将 svg 代码直接嵌入到 html 中(使用
<svg>
标签)
仅当 svg 嵌入 <embed>
时才会执行 svg 中的 ecmascript , <iframe>
或 <object>
标签。在<svg>
中直接嵌入svg代码时标记,可能需要进行一些代码更改(例如将脚本移动到 html 中的其他位置),但它也应该可以工作。
关于android - Android 中的 SVG 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6677397/