[LATER EDIT: 我发现问题与Android版本有关,而不是设备类型。所以我的代码适用于Android 4.0及以下版本,但不适用于更高版本。修复方法在答案中。]
我浪费了至少两天的时间来解决这个问题。我将几个网页打包成一个Android应用程序,在浏览器上和在我的Android设备(包括Galaxy Tab 2)上都能完美地运行。但在Nexus上却不能正常工作。因为我没有这个设备,所以我一直制作APK文件,并让朋友测试。错误出现在AJAX上。同样的代码对我来说可以工作,但对他(还有其他几个人,我不知道他们的设备)却不能工作。
以下是我使用的小测试。你可以看到它没有错误(这是我的猜测)。为什么它不能在所有的Android设备上工作?我提到我已经使用Eclipse和Build.PhoneGap.com编译了这段代码(其他相关文件在这里:http://jumpshare.com/b/57O6tH),但是结果相同:我得到的APK在一些设备上工作,在其他设备上却不能工作。使用*file:///android_asset/www/import.html*并没有帮助我。错误是404,文件不存在。但事实上文件是存在的。
哪里出了问题?它让我发疯 :). 为什么这段代码在浏览器上和在我的Galaxy Tab 2(以及Samsung Gio)的APK上运行良好,但在Nexus(和其他设备)上却不能正常工作?
我浪费了至少两天的时间来解决这个问题。我将几个网页打包成一个Android应用程序,在浏览器上和在我的Android设备(包括Galaxy Tab 2)上都能完美地运行。但在Nexus上却不能正常工作。因为我没有这个设备,所以我一直制作APK文件,并让朋友测试。错误出现在AJAX上。同样的代码对我来说可以工作,但对他(还有其他几个人,我不知道他们的设备)却不能工作。
以下是我使用的小测试。你可以看到它没有错误(这是我的猜测)。为什么它不能在所有的Android设备上工作?我提到我已经使用Eclipse和Build.PhoneGap.com编译了这段代码(其他相关文件在这里:http://jumpshare.com/b/57O6tH),但是结果相同:我得到的APK在一些设备上工作,在其他设备上却不能工作。使用*file:///android_asset/www/import.html*并没有帮助我。错误是404,文件不存在。但事实上文件是存在的。
哪里出了问题?它让我发疯 :). 为什么这段代码在浏览器上和在我的Galaxy Tab 2(以及Samsung Gio)的APK上运行良好,但在Nexus(和其他设备)上却不能正常工作?
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Test</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="jquery.mobile-1.2.0.min.css" rel="stylesheet"/>
<script src="jquery-1.8.3.min.js" type='text/javascript'></script>
<script src="jquery.mobile-1.2.0.min.js" type='text/javascript'></script>
<script type='text/javascript'>
//$(document).ready(function() {
$(document).bind("pageinit", function(){
$("#buton").bind('click',function(){
$.mobile.showPageLoadingMsg();
$.ajax({
url:'import.html',
datatype:'html',
type: 'GET',
success:function(html){
$.mobile.hidePageLoadingMsg();
$("#result").html(html);
},
error: function(jqXHR, textStatus, errorThrown) {
$("#result").html("ERRORS:"+errorThrown+"<hr>"+textStatus+"<hr>"+JSON.stringify(jqXHR))
$.mobile.hidePageLoadingMsg();
alert('Not working!!!');
}
})
});
});
</script>
</head>
<body>
<!-- Pagina de start -->
<div data-role="page" id="start">
<div data-role="header" data-theme="b">
<h1>Test</h1>
</div>
<div data-role="content">
<button id="buton">AJAX!</button>
<div id="result"></div>
</div>
</div>
</body>
</html>