javascript - html5 地理定位是否有 'GPS status changed' 事件?

标签 javascript html mobile gps w3c-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() 函数的调用。

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

关于javascript - html5 地理定位是否有 'GPS status changed' 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31428293/

相关文章:

javascript - 调用函数时开始旋转并在函数结束时停止的微调器按钮

javascript - 尝试从 Firebase Firestore 检索文档时,未捕获( promise )类型错误 : snapshot. 数据不是函数

html - 居中动态div

javascript - 输入 - 移动浏览器上仅输入数字

Android 在应用程序之间拖放

javascript - for 循环中的延迟会中断函数

javascript - 在 Vue.js 中实现商店模式

iPad Safari 忽略 html5 视频上方的 div onclick

JavaScript - 从函数中获取返回值

javascript jquery mobile 在for循环中创建按钮