【问题标题】:PhoneGAP Geoloaction NOT WORKING in AndroidPhoneGAP 地理位置在 Android 中不起作用
【发布时间】:2013-11-20 10:19:22
【问题描述】:

我正在使用 HTML5 + PhoneGap。 在我的应用程序中,我需要执行地理定位以获取纬度和经度。

当我搜索时,我从PhoneGap Website 获得了示例代码

document.addEventListener("deviceready", onDeviceReady, false);

// Cordova is ready
//
function onDeviceReady() {
  alert('deviceready');
    //navigator.geolocation.getCurrentPosition(onSuccess, onError);

    navigator.geolocation.getCurrentPosition(onSuccess);
}

// onSuccess Geolocation
//

function onSuccess(position) {
    var element = document.getElementById('geolocation');
    element.innerHTML = 'Latitude: '           + position.coords.latitude              + '<br />' +
                        'Longitude: '          + position.coords.longitude             + '<br />' +
                        'Altitude: '           + position.coords.altitude              + '<br />' +
                        'Accuracy: '           + position.coords.accuracy              + '<br />' +
                        'Altitude Accuracy: '  + position.coords.altitudeAccuracy      + '<br />' +
                        'Heading: '            + position.coords.heading               + '<br />' +
                        'Speed: '              + position.coords.speed                 + '<br />' +
                        'Timestamp: '          +                                   position.timestamp          + '<br />';
}

// onError Callback receives a PositionError object
//
function onError(error) {
    alert('code: '    + error.code    + '\n' +
            'message: ' + error.message + '\n');
}

但它不起作用! 它总是显示 正在观看地理位置... 但未加载详细信息。 我已经搜索了这个问题,但我没有得到正确的解决方案。

我发现这里发布了同样的问题,但解决方案在这:(

如何使用 PhoneGap 获取纬度和经度的详细信息?

任何人都可以帮助我???

【问题讨论】:

    标签: html cordova geolocation


    【解决方案1】:

    大约一年前我遇到了类似的问题,我的解决方案是重新启动我的手机 - 当时是一个 X And​​roid 4.0。不记得 phonegap 版本,但这是我不应该使用 phonegap 的一个完美例子。

    如果这不起作用,问题可能与高精度选项有关:http://docs.phonegap.com/en/3.1.0/cordova_geolocation_geolocation.md.html#Geolocation 尝试将 enableHighAccuracy 切换为 false/true。

    【讨论】:

    • 是的,我试过 navigator.geolocation.getCurrentPosition(onSuccess, onError, {enableHighAccuracy:true} );但仍然无法正常工作:(
    【解决方案2】:

    某些 Android 设备和模拟器仅支持高或低 GPS 精度。

    尝试以低精度和高精度运行您的代码。

    function onDeviceReady() {
      var options = { enableHighAccuracy: true }; // also try with false.
      navigator.geolocation.getCurrentPosition(onSuccess, onError, options);
    }
    

    如果这不起作用,请尝试在选项中调整超时,最后可能是您没有正确设置 Android 项目的 GPS 权限。检查应用清单以查看您设置或未设置的权限。

    【讨论】:

    • 嗨..@David Rust-Smith 我已经在 app/res/xml/config.xml 和 app/AndroidManifest.xml 中设置了所有权限。但它不起作用:(
    【解决方案3】:

    我认为原因是我们总是使用浏览器的 html5 实现而不是原生的。尝试确保您使用的是 cordova 原生函数来定位位置。

    【讨论】:

      猜你喜欢
      • 2013-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-18
      • 1970-01-01
      相关资源
      最近更新 更多