从navigator.geolocation.getCurrentPosition超时没有触发错误回调
Timeout from navigator.geolocation.getCurrentPosition is not triggering error callback
我有以下Javascript代码,用于获取用户本地化:
navigator.geolocation.getCurrentPosition(getStores, getStoresError, {
'enableHighAccuracy' : true,
'timeout' : 10000,
'maximumAge' : 0
});
当用户接受或拒绝本地化请求时,将调用两个回调。但是,如果在10秒内没有提供答案,我预计超时将过期并调用getStoresError。这是不可能的。什么好主意吗?
直到用户允许尝试计算他们的位置后,超时计时器才开始计数
var options = {timeout:10000,enableHighAccuracy:true,maximumAge:0};
navigator.geolocation.getCurrentPosition(getStores,getStoresError,options);
尝试创建一个全局变量,该变量只在navigator.geolocation.getCurrentPosition的成功方法上更新。然后你可以创建一个持续10秒的setTimeout函数来检查该值是否已经更新。
这样做的唯一问题是,如果用户单击Allow,而您的超时时间恰好在检索位置之前过期,您可能会过早地处理响应。在开发环境中尝试了很多之后。我终于发现,从2016年开始,chrome在不安全的环境中禁用了该api,它必须从https完成,希望这会节省人们的时间。请看下面的链接https://developers.google.com/web/updates/2016/04/geolocation-on-secure-contexts-only
相关文章:
- 测试Angular Service解决错误回调中的promise
- $http服务未触发成功或错误回调
- jQuery AJAX错误回调未运行
- JavaScriptajax请求servlet调用错误回调函数
- 为什么 AJAX 完成和错误回调都触发了
- Cordova Android短信插件不会触发成功或错误回调
- 无法识别错误回调
- 在第一次错误回调时退出承诺链
- 如何获取 Ember 组件对象内部承诺成功或错误回调
- 在 Node.js 中传播错误回调,并避免所有额外的麻烦
- 在 HTTP 错误回调中访问“this”
- 在 AngularJS 中声明一个承诺,并带有命名的成功/错误回调
- 谷歌浏览器中的地理位置错误回调
- PhoneGap 3.0.0 Tanelih 蓝牙插件在 Android 上已启用错误回调不起作用
- $http错误回调不能与 httpProvider responseInterceptor 结合使用
- JayData 上的默认错误回调
- 错误回调中的错误:TestPlugin2 = 引用错误:找不到变量:在 file:///android_asset/ww
- 主干.js:保存方法始终返回错误回调
- AJAX 中的成功或错误回调不起作用
- Backbone.js:奇怪的.save()错误回调