[編輯:我發現,問題與Android版本,而不是設備類型有關。所以我的代碼在Android 4.0之前是完美的,而不是上面。修復是在答案。]阿賈克斯在一些Android設備上工作,而不是在其他
我浪費了至少2天這個問題。我有幾個網頁作爲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(以及三星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>