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() 函数的调用。

我确定这不是您所希望的答案,但它就是答案。 :-(