Snap.svg不会在Android WebView

时间:2015-05-08 16:23:30

标签: javascript android svg webview

我有一个HTML文件,其中包含一个引用SVG文件的Snap.svg(只是一个Javascript API)动画。

window.onload = function () {

var s = Snap("#headDiv");
Snap.load("emotions.svg", function(f) {

我正在尝试让它在Android WebView中本地运行,但有趣的是,我的网页只能通过以下方式从服务器运行:

mWebView.loadUrl("http://www.myurl.com/index.html");

我将网页文件放入资源文件夹

enter image description here

并使用

进行访问
mWebView.loadUrl("file:///android_asset/index.html");

一切运行正常,(包括外部Javascript文件),除了我的SVG根本不显示。我尝试使用API​​ 16和19,结果相同:从服务器运行良好,没有本地SVG显示。这让我想知道我是指我的文件错了还是什么。

编辑:我还发现网页在Firefox中本地运行,但不是Chrome。问题可能出在这里。

1 个答案:

答案 0 :(得分:0)

发生这种情况的原因是因为Snap.load()发出了一个AJAX请求,这在Chrome中是不允许的,而Android WebView中本身不允许这样做。

将SVG放在HTML中并使用Snap.select()引用它是一个很好的解决方法,如下所述:How to select fragments of an existing SVG using Snap.svg