有没有办法检查地理定位是否已被 Javascript 拒绝?

新手上路,请多包涵

如果地理定位被拒绝,我需要 JavaScript 来显示手动条目。

我试过的:

 Modernizr.geolocation
navigator.geolocation

两者都没有描述用户之前是否拒绝访问地理定位。

原文由 craigmoliver 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 566
2 个回答

在不提示用户的情况下,您可以使用新的权限 api,它可以这样使用:

 navigator.permissions.query({ name: 'geolocation' })
.then(console.log)

(仅适用于 Blink 和 Firefox)

http://caniuse.com/#feat=permissions-api

原文由 Endless 发布,翻译遵循 CC BY-SA 4.0 许可协议

watchPositiongetCurrentPosition 都接受在出现错误时调用的第二个回调。错误回调为错误对象提供参数。对于被拒绝的权限, error.code 将是 error.PERMISSION_DENIED (数值 1 )。

在此处阅读更多信息: https ://developer.mozilla.org/en/Using_geolocation

例子:

 navigator.geolocation.watchPosition(function(position) {
    console.log("i'm tracking you!");
  },
  function(error) {
    if (error.code == error.PERMISSION_DENIED)
      console.log("you denied me :-(");
  });

编辑:正如@Ian Devlin 指出的那样,Firefox(本文发布时为 4.0.1)似乎不支持此行为。它在 Chrome 和 可能 的 Safari 等中按预期工作。

原文由 Cristian Sanchez 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题