html5 地理定位是否有 'GPS status changed' 事件?
Is there a 'GPS status changed' event for html5 geolocation?
我正在开发移动网络应用程序并使用 html5 的地理定位 api。
加载页面后,我开始观看位置:
function enableWatchPosition() {
if (navigator.geolocation) {
watchPositionId = navigator.geolocation.watchPosition(locateByBrowser, handleErrorGettingLocation, {
timeout : 30000,
enableHighAccuracy : true,
maximumAge : 1000
});
}
}
如果用户没有打开 GPS,handleErrorGettingLocation
会被触发,我会向他显示一条错误消息,要求他打开 GPS。
我的问题是:
假设用户然后打开他的 GPS - 我如何检测到它(所以我可以重试并再次调用 enableWatchPosition()
)?有什么我可以听的 js 事件吗?
谢谢!
没有以您可以从 Web 应用程序代码中看到的方式公开此类事件。当然标准Geolocation API spec中没有定义这样的事件。而且我不相信任何浏览器都会为它公开任何非标准事件。所以我认为您无法自动重新触发对 enableWatchPosition()
函数的调用。
我确定这不是您所希望的答案,但它就是答案。 :-(
我正在开发移动网络应用程序并使用 html5 的地理定位 api。
加载页面后,我开始观看位置:
function enableWatchPosition() {
if (navigator.geolocation) {
watchPositionId = navigator.geolocation.watchPosition(locateByBrowser, handleErrorGettingLocation, {
timeout : 30000,
enableHighAccuracy : true,
maximumAge : 1000
});
}
}
如果用户没有打开 GPS,handleErrorGettingLocation
会被触发,我会向他显示一条错误消息,要求他打开 GPS。
我的问题是:
假设用户然后打开他的 GPS - 我如何检测到它(所以我可以重试并再次调用 enableWatchPosition()
)?有什么我可以听的 js 事件吗?
谢谢!
没有以您可以从 Web 应用程序代码中看到的方式公开此类事件。当然标准Geolocation API spec中没有定义这样的事件。而且我不相信任何浏览器都会为它公开任何非标准事件。所以我认为您无法自动重新触发对 enableWatchPosition()
函数的调用。
我确定这不是您所希望的答案,但它就是答案。 :-(