火狐浏览器5,地理定位和“不是现在”的问题

6

有没有人遇到并成功找到了Firefox 5地理定位问题的可行解决方法?我在以下Bug报告中发布了该问题。和重新描述它相比,链接报告更容易。

https://bugzilla.mozilla.org/show_bug.cgi?id=675533

肯定不止我一个人受到了这个问题的困扰。


1
这里也有同样的问题。在错误报告中发表评论的工程师提出了一个很好的观点(您的用户界面应该优雅地处理未收到响应的情况),但我认为在这种情况下它应该超时并因此触发错误回调。 - brianjcohen
2个回答

2

这并不能解决你问题的根本,但我的处理策略是设置一个默认位置点并立即使用它(不等待地理位置问题的回答)。

如果我从用户那里得到一个位置,我只需将其更改为新位置。 如果我得到拒绝或根本没有回答,我就保持在默认位置上。

我的经验也表明,桌面客户端(在我这种情况下是Windows电脑上的Firefox)需要比移动客户端(在我这种情况下是iPhone上的Safari)花费更多的时间来响应。 我被迫将超时设置为10秒(10000),以便为桌面客户端提供足够的时间来响应。 因此,如果您有一个地图,请直接初始化并将其居中在默认位置上,这将使用户在屏幕上看到地图的速度比等待响应要快得多。

祝你在定位项目中好运!


2

我可能有点晚,但希望能帮助其他人。 我的解决方法基于延迟调用。如果在延迟调用触发时没有修复,我会感到怀疑 :)

var timeIsPassig = false;

function anyThing(){
  timeIsPassig = true;
  setTimeout(
    function(){
      if (timeIsPassig) {
        timeIsPassig = false;
        console.log("Waiting too much... Or did you say not now? :-P");
        }
      },
    10000
    );
  navigator.geolocation.getCurrentPosition(
    function (pos) {timeIsPassig = false; /* rest of positioning*/},
    function (err) {timeIsPassig = false; /* rest of error handling*/},
    {maximumAge: 30000, timeout: 10000, enableHighAccuracy: true}
    )
  }

好的答案。它也解决了Mozilla开发人员提出的问题——我们应该如何处理“用户忽略它”的情况。顺便说一下,IE11甚至没有“这次拒绝”选项,所以这是我向我的开发团队推荐的解决方案。 - Owen Blacker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接