我有一个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");
我将网页文件放入资源文件夹
并使用
进行访问mWebView.loadUrl("file:///android_asset/index.html");
一切运行正常,(包括外部Javascript文件),除了我的SVG根本不显示。我尝试使用API 16和19,结果相同:从服务器运行良好,没有本地SVG显示。这让我想知道我是指我的文件错了还是什么。
编辑:我还发现网页在Firefox中本地运行,但不是Chrome。问题可能出在这里。
答案 0 :(得分:0)
发生这种情况的原因是因为Snap.load()发出了一个AJAX请求,这在Chrome中是不允许的,而Android WebView中本身不允许这样做。
将SVG放在HTML中并使用Snap.select()引用它是一个很好的解决方法,如下所述:How to select fragments of an existing SVG using Snap.svg