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

你的 params 对象最后有一个额外的 , 。

于 2013-04-11T07:12:12.257 回答
0

我打赌app.data.url是一个安全的 URL (https)。我遇到了同样的问题,必须为低于 4 的 Android 版本编写一个例外,才能使用正常的、非安全的 http 连接。从来没有找到为什么它不起作用的答案。

于 2014-01-15T18:10:15.967 回答