Javascript navigator.geolocation.getCurrentPosition已停止工作

Javascript navigator.geolocation.getCurrentPosition已停止工作,javascript,cordova,geolocation,Javascript,Cordova,Geolocation,我正在开发一款针对iOS平台的phonegap应用程序。我想捕获用户的地理位置。 我正在使用下面的代码,它在一段时间内运行良好,但突然停止工作 <script type="text/javascript"> var onSuccess = function(position) { alert('Latitude: ' + position.coords.latitude + '\n' +

我正在开发一款针对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>

var onSuccess=函数(位置){
警报('Latitude:'+position.coords.Latitude+'\n'+
'经度:'+position.coords.Longitude+'\n'+
'高度:'+position.coords.Altitude+'\n'+
'精度:'+position.coords.accurity+'\n'+
'高度精度:'+position.coords.altitudeAccuracy+'\n'+
'标题:'+position.coords.Heading+'\n'+
'速度:'+position.coords.Speed+'\n'+
'时间戳:'+position.Timestamp+'\n');
};
//OneError回调接收PositionError对象
//
函数onError(错误){
警报('code:'+error.code+'\n'+
'消息:'+error.message+'\n');
}
navigator.geolocation.getCurrentPosition(onSuccess,onError);

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

您可以尝试以下选项:

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

//navigator.geolocation.getCurrentPosition(successCallback, errorCallback, {timeout: 30000, enableHighAccuracy: true, maximumAge: 75000});
EnableHighAccurance–一个布尔值(真/假),它向设备指示您希望获得最准确的读数(此参数可能会产生差异,也可能不会产生差异,具体取决于您的硬件)

maximumAge–读取的最长时间(以毫秒为单位)(这是适当的,因为设备可能缓存读取以节省电源和/或带宽)

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


它在Chrome上对我很好,你的控制台有错误吗?检查这个是的,我已经检查过了。实际上,当我从另一台机器上运行这个项目时,它又运行了6-7次。所以我想知道是否有任何限制。@radia:它显示间隔后超时今天它工作正常,但仅在模拟器上,当我在实际的iOS设备上运行它时,它工作一次,然后停止设备可以缓存geoloc值以节省电能,此解决方案帮助您强制更新信息。你至少试过了吗?你可以设定你需要的值我只是举个例子