我在 Eclipse 中有一个准系统 index.html,Android Phonegap 项目,它不会执行 jQuery Mobile ajax 调用。LogCat 显示以下消息并且应用程序崩溃 CordovaWebView: TIMEOUT ERROR! CordovaWebViewClient.onReceivedError: 错误代码=-6 描述=与服务器的连接不成功。
有趣的事实: 1.) 如果我注释掉 ajax 调用,Eclipse 可以正常安装和运行应用程序。2.) 我在 .apk 中使用与通过 PhoneGap Build 处理 html-css-javascript 应用程序获得的相同的 ajax 模式,它工作正常。
详细信息:在 Eclipse Juno 中,我有一个带有 index.html 文件的 Android PhoneGap 项目(它使用 ADT 和 cordova-1.9.0.jar),该文件按以下顺序包含以下 .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);
}
});
});
该项目有
- cordova-1.9.0.jar 在其构建路径中
一个 AndroidManifest.xml 文件,其中包含我的 .java 文件android:name=".java_activity" 和
android:name="org.apache.cordova.DroidGap"的 <application><activity>
和所有 <uses-permissions>
<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 调用?
谢谢