使用PhoneGap,我正在尝试构建一个基本的Android应用程序,它对PHP API进行AJAX调用并返回一些JSON数据。代码完全适用于桌面,但是当我进行构建时,它似乎不适用于我的Android。当我构建应用程序时,将其安装在我的设备上,并加载它,我得到了空白屏幕。
这是我写的客户端......这段代码有什么问题吗?
<head>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jquerymobile/1.4.3/jquery.mobile.min.css" />
</head>
<body>
<script>
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
// Now safe to use the PhoneGap API
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
$.ajax({
url: 'http://api.example.com/test.php',
dataType: 'json',
timeout: 5000,
success: function(data, status) {
//data loaded
$('#results').append(data[0].about);
},
error: function() {
//error loading data
$('#results').append('No data received.');
}
});
$(document).ajaxError(function(event, request, settings) {
$("#msg").append("<li>Error requesting page " + settings.url + "</li>");
});
$(document).ajaxComplete(function(event, request, settings) {
$("#msg").append("<li>Request Complete.</li>");
});
}
</script>
<p id="results"></p>
<p id="msg"></p>
</body>
</html>
我还将config.xml中的访问源设置为:
<access origin="http://example.com" subdomains="true" />
<access origin="*"/>
似乎没有调用AJAX代码(和全局AJAX事件处理程序)。
答案 0 :(得分:0)
请务必将cordova.js包含在正确的位置并且可用(例如alert(<some cordova property>);
)。然后尝试完全调用onDeviceReady:
document.addEventListener("deviceready", function(){
alert("deviceready");
},false);