我在Eclipse中有一个准确的index.html,Anddroid Phonegap项目,它不会执行jQuery Mobile ajax调用。 LogCat显示以下消息,应用程序崩溃 CordovaWebView:超时错误! CordovaWebViewClient.onReceivedError:错误代码= -6说明=与服务器的连接不成功。
有趣的事实: 1.)如果我注释掉ajax调用,Eclipse会安装并运行应用程序。 2.)我在.apk中使用相同的ajax模式,通过PhoneGap Build处理html-css-javascript应用程序,它运行正常。
详细说明: 在Eclipse Juno中,我有一个Android PhoneGap项目(它使用ADT和cordova-1.9.0.jar)和index.html文件,该文件按以下顺序包含以下.js文件:
<script type="text/javascript" src="Scripts/cordova-1.9.0.js"></script>
<script type="text/javascript" src="Scripts/jquery-1.6.2.min.js"></script>
<script src="Scripts/temp.js" type="text/javascript"></script>
temp.js文件中包含此内容
$(document).ready(function(){
var theUrl = 'http://www.myDomain.biz/WebServices/gg.svc/';
console.log("theUrl + GetHelpFile = " + theUrl + "GetHelpFile");
$('div#divTarget').html("theUrl + GetHelpFile = " + theUrl + "GetHelpFile");
$.ajax({
type: "GET",
cache: false,
dataType: 'jsonp',
url: theUrl + "GetHelpFile",
contentType: "text/plain",
success: function (theJson) {
var help_file = $(theJson);
$('div#divHelpFile').html(help_file);
},
error: function ($theData) {
var tt = $theData;
alert(tt);
}
});
});
项目有
以及所有&lt; uses-permissions&gt;
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
我在Eclipse中使用的运行配置目标是一个4.0 AVD,一切正常。 当我注释掉ajax调用时,Eclipse会创建.apk文件,打开AVD,安装应用程序,它运行正常。另外,我在IIS中创建了一个相同index.html文件的网站,位于同一目录中,并且页面在浏览器中加载,并且ajax运行正常。
我增加了超时时间,这没有帮助
super.setIntegerProperty("loadUrlTimeoutValue", 60000);
您认为我需要做些什么才能在我的Eclipse-Android-PhoneGap项目中执行ajax调用?
由于
答案 0 :(得分:2)
您应该使用不同类型的ajax调用:
$.get('http://yourdomain.com/index.php', function (data) {
alert(data);
});
phonegap android ajax call doesnt work 这是我的解决方案。