0

Eclipseに必要最低限​​のindex.htmlAnddroidPhonegapプロジェクトがあり、jQueryMobileajax呼び出しを実行しません。LogCatは次のメッセージを表示し、アプリはCordovaWebViewをクラッシュさせます。タイムアウトエラー!CordovaWebViewClient.onReceivedError:エラーコード=-6説明=サーバーへの接続に失敗しました。

興味深い事実:1。)ajax呼び出しをコメントアウトすると、Eclipseはアプリを正常にインストールして実行します。2.)PhoneGap Buildを介してhtml-css-javascriptアプリを処理することで取得する.apkで同じajaxパターンを使用しますが、正常に動作します。

詳細:Eclipse Junoには、次の.jsファイルを次の順序で組み込んだindex.htmlファイルを含むAndroid PhoneGapプロジェクト(ADTとcordova-1.9.0.jarを使用)があります。

<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

  • .javaファイルandroid:name = "。java_activity"および
    android:name="org.apache.cordova.DroidGap"の<application><activity>を含むAndroidManifest.xmlファイル

およびすべての<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.0AVDを対象としており、すべて正常に機能します。ajax呼び出しをコメントアウトすると、Eclipseは.apkファイルを作成し、AVDを開いてアプリをインストールすると、正常に実行されます。また、IISで同じindex.htmlファイルのWebサイトを同じディレクトリに作成しました。ページがブラウザに読み込まれ、ajaxは正常に実行されます。

タイムアウト期間を長くしましたが、役に立ちませんでした

super.setIntegerProperty("loadUrlTimeoutValue", 60000);

Eclipse-Android-PhoneGapプロジェクトでajax呼び出しを実行するには、何をする必要があると思いますか?

ありがとう

4

1 に答える 1

2

別のタイプのajax呼び出しを使用する必要があります。

$.get('http://yourdomain.com/index.php', function (data) {
alert(data);
});

phonegapandroidajax呼び出し がここで機能しないのが私の解決策です。

于 2012-08-17T07:32:59.647 に答える