0

PhoneGap 2.5 で初めての Android アプリを作成しています。アプリはシンプルで、ローカルの GPS 座標を読み取り、デバイス データ (uuid、Android バージョン) と入力フィールドと共にリモート サーバーに送信するだけです。アプリが起動すると、一種の「デバイス登録」がリモートサーバーに送信され、データが返されます

現在、私はjquery v1.9.1のみを使用しており、jquery mobileや他のjavascriptライブラリは使用していません。

これがコードです

onDeviceReady: function() {
    $.support.cors = true;
    app.deviceRegister();
    // navigator.splashscreen.hide();
},

deviceRegister: function() {
    var params = {
        'device_uuid': window.device.uuid,
        'device_platform': window.device.platform,
        'device_model': window.device.model,
        'device_version': window.device.version,
    };
    var url = app.data.url + 'devices/register'; // app.data.url defined elsewhere
    $.ajax(url, {
        type: "POST",
        data: params,
        timeout: 5000,
        success: function(response) {
            // updates html with received data
            $("#user_badge").html(response.badge);
            $("#user_name").html(response.full_name);
        },
        error: function(x, t, m) {
            if (t === 'timeout') {
                navigator.notification.alert('timeout error');
            } else {
                navigator.notification.alert('error: ' + t);
            }
        },
        dataType: 'json'
    });
},

Android v4.x (エミュレーターと実デバイスの両方) に適用すると、完全に機能し、データがリモート サーバーに送信され、応答が正しく管理されます。

問題は、Android v2.3.x (エミュレーターと実際のデバイスの両方) でアプリを実行した場合です。データは送信されず、「エラー: エラー」のアラートだけが表示されます。

Android 2.3 と jquery 1.9 の間に何か問題があると思いますが、どこに問題があるのか​​わかりません。

推測はありますか?

4

2 に答える 2

0

app.data.url安全な URL (https)だと思います。私は同じ問題を抱えていて、通常のセキュリティで保護されていない http 接続を使用するために、Android バージョン 4 未満の例外を作成する必要がありました。なぜそれが機能しないのかについての答えは見つかりませんでした。

于 2014-01-15T18:10:15.967 に答える