在iPad中禁用位置服务时,使用phonegap获取GeoLocation

时间:2012-08-20 04:13:58

标签: html5 cordova geolocation w3c-geolocation

我正在使用phonegap开发iPad应用程序(cordova 1.9.0)。我需要获得用户的当前位置。 我使用了以下代码,并且在启用位置服务时它可以正常工作。

function onDeviceReady() {  
 navigator.geolocation.getCurrentPosition(onSuccess, onError);   
 }

function onSuccess(position) {
 console.log(position.coords.latitude + "-" + position.coords.longitude);
}

  function onError(error) {   
     alert('code: '    + error.code           
      'message: ' + error.message + '\n');  
  }

我的问题是,当禁用位置服务时,此代码无效。如果启用或禁用了位置服务,我需要获取当前位置。

有人告诉我如何获得这个位置的当前位置吗?

1 个答案:

答案 0 :(得分:4)

禁用位置服务时无法获取当前位置。这将违反用户的隐私。在设备上禁用位置服务的目的是防止应用程序获取当前位置。

我所做的就是在调用getCurrentPosition()之前显示我自己的对话框,详细解释我为什么需要位置服务。我解释说,没有它,应用程序将无法运行。我也说过:

  

您的设备也可能会要求您许可。

这增加了有人对iPhone对话框说“是”的机会。