私はこの独特の問題とかなりの数日間戦ってきましたが、役に立ちませんでした。これはフリーランスの仕事なので、首が傾いていて、あなたの助けが必要です。
まず、phonegap と jQuery 1.9.1 を使用してアプリを作成しています。アプリがオンラインになり、旅程が csv 形式で取得され、アプリに保持されます。これには jQuery の get() 関数が使用されます。
ここが変なところです。以下に示すように、phonegap の DeviceReady イベントで発生した場合、get 関数は正常に動作します。
onDeviceReady: function() {
$( document ).bind( "mobileinit", function() {
$.mobile.allowCrossDomainPages = true;
});
$.get('http://dl.dropboxusercontent.com/u/53792213/App/DavidColson.csv', function(data) {
alert('Success');
}, "text")
.fail(function(jqXHR, textStatus, errorThrown) {
alert("An AJAX error occured: " + textStatus + "\nError: " + errorThrown);
});
});
},
ご覧のとおり、クロス ドメイン ページが許可されているため、すべてがスムーズに実行され、「成功」というアラートが表示されます。
ただし、これをイベントで呼び出す場合、たとえばユーザーがボタンをクリックしたときなどは機能しません。以下を見てください。
onDeviceReady: function() {
$( document ).bind( "mobileinit", function() {
$.mobile.allowCrossDomainPages = true;
});
$("#itineraryAddButton").bind("click", function(event) {
alert("Event fired");
$.get('http://dl.dropboxusercontent.com/u/53792213/App/DavidColson.csv', function(data) {
alert('Success');
}, "text")
.fail(function(jqXHR, textStatus, errorThrown) {
alert("An AJAX error occured: " + textStatus + "\nError: " + errorThrown);
});
});
},
「イベントが発生しました」アラートが発生し、次に失敗関数が起動して、ajax エラーが発生したことを通知しますが、errorThrown
文字列は空で、手がかりはありません。
修正をさらに困難にするために、これは物理的な Android デバイス上でのみ発生し、ブラウザおよび仮想 Android デバイス上で完全に動作するため、デバッグがほとんど不可能になります。
ソフトウェアのバージョンに関する詳細情報が必要な場合は、私にお知らせください。また、この問題の解決に役立つ情報があれば教えてください。
デビッド
編集:
https://dl.dropboxusercontent.com/u/53792213/itineraryapp.apk 試用するための未署名の apk へのダウンロード リンクは次のとおりです。アプリが開いたら、[Add Itinerary] をクリックするとボックスが表示されます。入力内容は関係ありません。[Go get it] をクリックして get() 関数をトリガーし、アラートを監視します。
イベントが発生した場合は「Hello」 動作した場合は「成功」 動作しなかった場合は「Ajax エラーが発生しました」