我正在尝试在PhoneGap(2.8.1)-Android 4.2.2中从web动态加载图像。其代码如下("照片"是"img"标签的id):
var imageSource = "http://placekitten.com/g/400/400";
$('#photo').load(function(){
console.log("Image Path : "+imageSource);
image_loaded = 1;
}
)
.attr("src", imageSource)
.error(
function(){
image_loaded = -1;
alert('Image failed to load');
var thisImg = this;
setTimeout(function(){
if ( ! thisImg.complete ) {
alert('Process not complete yet');
$(thisImg).attr("src", imageSource);
}
},
30000
);
});
然而,代码未能加载。这有点奇怪,因为相同的代码,相同的phonegap版本,在Android 2.2中运行得非常好,但不知何故,它只是落在了Android 3.x和4.x的"错误"部分!
仔细比较安卓2.2和4.2.2设备的"LogCat",很明显,在后一种情况下有一条消息:
"Unkonwn chromium error: - 6"
已经阅读了几篇文章,并试图在XML等中设置各种访问权限,试图用更高版本(2.9.1)替换Phonegap库,但没有成功。关于StackOverflow的一些参考问题:
jquery.load()在phonegap 3.0.0 上不起作用
jQuery.load()能在PhoneGap上工作吗?
对于Android 3.x和4.x,如果我可以的话,还请添加一点,$("#photo").load()下的console.log()函数根本没有命中,代码立即出现在"error"部分的"alert"上。
我是不是遗漏了一些显而易见的东西?或者,如果有什么技巧可以尝试?
非常感谢!
这个问题的解决方案完全出乎意料。
在互联网上进行了大量研究后,普遍认为(也许)到目前为止,Phonegap的唯一稳定版本是Phonegap 2.4.0和Phonegap 2.5.0
我只是将Phonegap库从Phonegap 2.8.1替换为Phonegap 2.4.0,现在所有的Android版本都可以正常工作!我一点也不需要更改HTML、jQuery或Android代码。
事实上,这听起来很奇怪,但事实就是这样。到目前为止,我还没有因为这种故意的"降级"而不得不在任何其他Phonegap功能上妥协。
谢谢。