gpt4 book ai didi

javascript - 如何检测用户对地理定位的负面 react

转载 作者:技术小花猫 更新时间:2023-10-29 12:39:23 25 4
gpt4 key购买 nike

当使用地理定位 API 的 navigator.geolocation.getCurrentPosition() 时如何处理否定响应?

它说当有错误时调用第二个回调函数。但是,当用户选择不通过取消该功能永远不会触发的请求来透露他的位置时。

getCurrentPosition() 似乎无限期地等待答案。 (至少在 Firefox 4 中)

我如何知道用户何时按下取消(或否等)

有什么想法吗?

最佳答案

请参阅下面的编辑
你是对的,错误处理程序应该在用户拒绝位置请求时触发。传递给错误处理程序的错误对象应该包含错误代码和消息,让您知道用户拒绝了请求。但是,当我从位置请求对话框中选择选项 Not Now 时,我在 FF4 中没有看到这一点。

在 Chrome 中,API/回调完全按预期工作,但在 Chrome 中没有第三个选项。

编辑
啊好吧,我在 FF4 中发现了这个行为的一个小怪癖。在正常模式下(非隐私浏览),用户将看到 3 个选项:

  • 始终分享
  • 从不分享
  • 不是现在

Never share 会正确触发错误处理程序,但 Not Now 不会。

这是什么意思,如何处理?

好吧,看起来如果用户点击 Not Now,您将不会得到响应。因此,我会设置一个超时来检查将由其中一个处理程序设置的标志。如果未设置此标志(意味着处理程序未在分配的时间内触发),您可以执行以下两项操作之一:

  1. 假设用户拒绝了请求(即使拒绝是暂时的)
  2. 您可以再次请求用户许可(通过同一个调用),用户将再次看到对话框。

选项 2 的可用性可能很差(而且很烦人),因此最好假定他们暂时拒绝并在他们下次访问该网站时再次(礼貌地!)询问他们。


我创建了一个 JsFiddle 来使用这个 API:

http://jsfiddle.net/7yYpn/11/

关于javascript - 如何检测用户对地理定位的负面 react ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6380195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com