【问题标题】:SVG support in AndroidAndroid 中的 SVG 支持
【发布时间】:2011-07-13 10:20:41
【问题描述】:

我们将开发一个 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, ""); 

拉加兹 涩

【问题讨论】:

  • 您能否建议如何使 SVG 能够在 webview 中显示特定的 Web 内容?

标签: android webview svg


【解决方案1】:

Android(3.0 及更高版本)支持带有 ECMAScript 的 SVG。

问题是在&lt;img&gt;标签中添加svg时,svg中的ecmacript没有被执行。我还在几个桌面浏览器中对其进行了测试,当 svg 在&lt;img&gt; 标签中时,ecmascript 没有在其中任何一个中执行。

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

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

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

【讨论】:

  • 您应该创建一个单独的问题。评论不适合这样做。
  • 在 android 2.3 OS 中支持 webbrowser 的任何其他方式?
猜你喜欢
  • 2011-04-22
  • 2013-09-16
  • 2011-06-17
  • 1970-01-01
  • 2016-09-20
  • 2012-03-12
  • 1970-01-01
  • 2020-04-13
  • 2010-12-19
相关资源
最近更新 更多