【问题标题】:navigator.geolocation.getCurrentPosition do not work in Firefox 30.0navigator.geolocation.getCurrentPosition 在 Firefox 30.0 中不起作用
【发布时间】:2014-08-13 02:08:00
【问题描述】:

我使用的是 Firefox 30.0(最新的 FF),navigator.geolocation.getCurrentPosition 在 Chrome 中工作,但在这个版本的 FF 中没有。

这是我的代码:

if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(GEOprocess, GEOdeclined);
}else{
    alert('Your browser sucks. Upgrade it.');
}

function GEOdeclined(error) {
    alert('Error: ' +error.message);
}

function GEOprocess(position) {
    alert('it works');
}

我收到此错误:

Error: Unknown error acquiring position

注意:将 Firefox 升级到 30.0 版后停止工作

【问题讨论】:

    标签: firefox geolocation navigator


    【解决方案1】:

    现在我正在使用 47 Mozilla。我已经尝试了一切,但一直都是这个问题。 BUT 然后我在地址栏中打开 about:config,转到 geo.wifi.uri 并将其值更改为“https://location.services.mozilla.com/v1/geolocate?key=test”。 有效!

    【讨论】:

    • 更改 uri 也对我有用,似乎 google 阻止了某些东西。
    • 但是客户需要对地理位置进行设置,有没有办法通过编码来修改该设置,或者我们可以通过其他方式而不是设置来获取地理位置
    • @Abhijit Jagtap 我只在本地环境中需要它。
    • 感谢@VasylGutnyk 的回复,但您有什么想法,我该如何在客户端实现它?
    • 配置键已从“geo.wifi.uri”更改为“geo.provider.network.url”。我正在使用 FF 76
    【解决方案2】:

    我有一个可能的解决方案:

    我认为 mozilla 家伙在位置获取过程中进行了一些更改,所以现在需要更多时间并且函数 getCurrentPosition 会超时。

    这将回答为什么它在 chrome 中工作、在 FF 29 中工作而不在 FF 30.0 中工作的问题。

    但这是一个假设。现在让我们回到现实世界:

    我在通话中设置了 10 秒的超时时间,现在它可以正常工作了。我是这样做的:

    navigator.geolocation.getCurrentPosition(onSuccess, onError, {timeout:10000});
    

    这为我解决了问题。它适用于 FF 30。

    【讨论】:

      猜你喜欢
      • 2012-03-02
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      • 2018-11-14
      相关资源
      最近更新 更多