navigator.geolocation.getCurrentPosition已停止工作

时间:2014-04-09 12:16:32

标签: javascript cordova geolocation

我正在开发针对iOS平台的phonegap应用。我想捕获用户的地理位置。 我使用下面的代码,这个工作正常,并突然停止工作

    <script type="text/javascript">

    var onSuccess = function(position) {
        alert('Latitude: '          + position.coords.latitude          + '\n' +
              'Longitude: '         + position.coords.longitude         + '\n' +
              'Altitude: '          + position.coords.altitude          + '\n' +
              'Accuracy: '          + position.coords.accuracy          + '\n' +
              'Altitude Accuracy: ' + position.coords.altitudeAccuracy  + '\n' +
              'Heading: '           + position.coords.heading           + '\n' +
              'Speed: '             + position.coords.speed             + '\n' +
              'Timestamp: '         + position.timestamp                + '\n');
    };

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

    navigator.geolocation.getCurrentPosition(onSuccess, onError);

    </script>

上面的代码返回纬度和经度大约7次,但之后成功回调函数没有被调用,有时它会在浏览器上显示用户拒绝弹出窗口。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下选项:

{timeout: 30000, enableHighAccuracy: true, maximumAge: 75000}

//navigator.geolocation.getCurrentPosition(successCallback, errorCallback, {timeout: 30000, enableHighAccuracy: true, maximumAge: 75000});
  

enableHighAccuracy - 一个布尔值(true / false),它向设备指示您希望获得最准确的读数(此参数可能会有所不同,具体取决于您的硬件)

     

maximumAge - 读数的最大年龄(以毫秒为单位)(这是合适的,因为设备可能会缓存读数以节省功耗和/或带宽)

     

timeout - 您准备允许设备尝试获取地理位置的最长时间(以毫秒为单位)