我有一個準系統index.html,Eclipse中的Anddroid Phonegap項目,它不會執行jQuery Mobile ajax調用。 LogCat顯示以下消息和應用程序崩潰 CordovaWebView:TIMEOUT ERROR! CordovaWebViewClient.onReceivedError:錯誤代碼= -6說明=到服務器的連接不成功。在Eclipse中製作的Android PhoneGap應用程序不會運行jQuery ajax調用
有趣的事實: 1.)如果我註釋掉ajax調用,Eclipse會安裝並運行應用程序。 2.)我在.apk中使用相同的ajax模式,通過PhoneGap Build來處理html-css-javascript應用程序,並且它工作正常。
詳情: 在Eclipse朱諾,我有一個Android的PhoneGap項目(它採用了ADT和科爾多瓦-1.9.0.jar)與包含以下順序如下.js文件index.html文件:
<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);
}
});
});
該項目
- 科爾多瓦-1.9.0.jar在其構建路徑
- 的AndroidManifest.xml文件是 具有<應用> <活動>爲了我的java文件
機器人:「java_activity」 name =併爲
機器人:NAME = 「org.apache.cordova.DroidGap」
和所有的<使用的權限>
<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);
那你覺得我需要做的就是Ajax調用我在Eclipse的Android系統的PhoneGap項目執行?
感謝
更新:應用程序在我的手機上運行良好,但不在AVD中。兩者都表示他們正在運行Android 4.0.3我在這裏使用AVD,因此這裏的環境要求我們使用代理。在IE中我們做的工具/ Internet選項/連接/ LAN設置/使用代理服務器,並填寫代理服務器的URL。所以我認爲AVD沒有使用它,所以這裏的網絡不會讓ajax通話繼續。另外,我在AVD中使用http:// localhost等應用程序,這是一個返回我想要的網址,但這沒有幫助。想法? – pdschuller 2012-08-09 16:35:42