禁用设备位置时navigator.getCurrentPosition的javascript问题 - 无回调

时间:2017-05-11 07:57:43

标签: javascript mobile browser location

我正在尝试通过

获取用户位置
navigator.geolocation.getCurrentPosition(this.check_location.bind(this), this.on_get_position_error.bind(this), { enableHighAccuracy: true, timeout: 5000 });

它在大多数时候都很完美。但是,如果在设备设置中禁用了地理位置(例如在iPhone上:设置应用>隐私>位置服务>关闭),Safari或Chrome就不会调用任何回调(两者都不会) this.check_location()this.on_get_position_error())。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

好的,我修好了。我不明白为什么,但添加0延迟超时使其工作:

setTimeout(function() {

navigator.geolocation.getCurrentPosition(this.check_location.bind(this), this.on_get_position_error.bind(this), { enableHighAccuracy: true, timeout: 5000 });

}.bind(this), 0);