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

新手上路,请多包涵

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

我试过的:

 Modernizr.geolocation
navigator.geolocation

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

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

阅读 570
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 许可协议

推荐问题