navigator.geolocation.getCurrentPosition():如果用户输入“no”,则触发回调

navigator.geolocation.getCurrentPosition(): fire callback if user says "no"?

本文关键字:no 回调 输入 getCurrentPosition geolocation 用户 如果 navigator      更新时间:2023-09-26

这是我的代码的近似:

if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(
        function(position) {
          // success! 
        },
        function(error) {
          // error
        },
        { timeout: 10000 }
    );
} else {
    // your browser/device doesn't support geolocation
}

当这段代码运行时,浏览器会正确地请求用户允许跟踪其物理位置。如果用户说"是",它就会正确运行第一个参数('success')指定的函数。

我不清楚的是当用户说"不"时会发生什么。在我目前的测试中(在Firefox 7中),如果用户说"no",什么也不会发生。我有点期待错误回调(第二个函数)运行,但它没有。我希望对用户的负面反应做出反应(通过删除触发此调用的链接)。

您需要在navigator.geolocation.getCurrentPosition()的第二个回调中处理它,该回调处理诸如用户拒绝其位置(以及其他事情)之类的问题。

navigator.geolocation.getCurrentPosition(fn, function(errorCode) {
    if (errorCode == 1) {
       alert('Y U NO GIVE LOCATION?');
    }
});
W3C规范。

错误码列表。

对上一个回复的小更正

navigator.geolocation.getCurrentPosition(your_success_function, function(error) {
    if (error.code == 1) {
       alert('Y U NO GIVE LOCATION?');
    }
});