捕获用户单击允许浏览器地理位置请求弹出窗口的确切时刻

时间:2016-03-08 16:47:54

标签: javascript angularjs asynchronous geolocation promise

我使用window.navigator.geolocation.getCurrentPosition()来获取用户是否允许从浏览器使用地理位置的状态。但是,我发现我的angularjs app有一个显着的延迟,可以看到检测到'allow'的确切时刻。我使用angular来检测它自己的$window而不是window,以便于检查。但是,用户点击允许后通常会导致2秒左右的延迟,只有这样,角度检测到我的广播消息browser-geo-location-permitted,因为只有在getCurrentPosition作为承诺执行后才会播放广播。

$window.navigator.geolocation.getCurrentPosition(function(position) {
        $rootScope.$broadcast('browser-geo-location-permitted');
})

所以我想知道我用这种方式检测是否有问题,或者有更简单的方法来捕获用户点击“允许”浏览器地理位置请求的确切时刻?我也对纯粹的js解决方案持开放态度。

谢谢

1 个答案:

答案 0 :(得分:0)

不,没有办法通知用户何时允许地理位置。只有在浏览器确定了用户的位置时才会通知您。