我正在使用jquery-ui-maps和HTML5地理位置向用户显示位置列表,我需要利用用户的地理位置。
所以,这是用例,
- 用户未启用 GPS/定位服务。
- 用户打开应用程序并导航到调用 navigator.geolocation 以获取用户位置的视图
- 应用程序出错并通知用户他们必须启用 GPS/定位服务
- 然后,用户导航出应用并启用 GPS
- 当用户返回应用并尝试查看地图(再次调用地理位置)时,应用仍然无法使用 GPS。
我相信我已经将其缩小到Phonegap问题,其中GPS权限在应用程序加载时初始化并且从未重新评估。
我的问题是,可以在应用程序运行时启用 GPS 还是 Phonegap 需要重新加载应用程序才能使用 GPS?
Phonegap确实支持GPS的实时更新。
这是一个直接链接:
http://docs.phonegap.com/en/3.1.0/cordova_geolocation_geolocation.md.html#geolocation.watchPosition
一般来说,它被称为"手表位置",您可以自己设置刷新计时器。
关于在运行时启用 GPS。
尽量只打电话给navigator.geolocation.watchPosition()
.
请记住在您的配置上授予对地理位置的访问权限.xml但我想你知道;)
我希望它有所帮助。
挣扎了一段时间后,我找到了一个能够帮助我解决相同问题的插件
https://github.com/nishantsharmajecrc/cordova-dialog-gps
function calldialog() {
document.addEventListener("deviceready",function() {
cordova.dialogGPS("Your GPS is Disabled, this app needs to be enable to works.",//message
"Use GPS, with wifi or 3G.",//description
function(buttonIndex){//callback
switch(buttonIndex) {
case 0: break;//cancel
case 1: break;//neutro option
case 2: break;//user go to configuration
}},
"Please Turn on GPS",//title
["Cancel","Later","Go"]);//buttons
});
}