2

私はこの独特の問題とかなりの数日間戦ってきましたが、役に立ちませんでした。これはフリーランスの仕事なので、首が傾いていて、あなたの助けが必要です。

まず、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 エラーが発生しました」

4

0 に答える 0