navigator.geolocation.getCurrentPosition在Firefox 30.0中无法工作。

12

我正在使用最新的Firefox 30.0版本,而navigator.geolocation.getCurrentPosition在Chrome中可以正常使用,但在这个版本的Firefox中无法使用。

以下是我的代码:

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后它停止工作了。

2个回答

29

6
更改URI对我也有用,似乎Google正在阻止某些内容。 - Shikiryu
2
但客户需要进行地理定位设置,是否有办法通过编程修改该设置或者我们可以通过其他方式获取地理定位? - Abhijit Jagtap
@Abhijit Jagtap 我只需要在我的本地环境中使用它。 - Vasyl Gutnyk
谢谢@VasylGutnyk的回复,但是你有没有想法,我该如何在客户端实现它? - Abhijit Jagtap
@Abhijit Jagtap 没有使用过类似的东西。 但也许这个库可以帮助你:https://github.com/pyllyukko/user.js/ - Vasyl Gutnyk
2
配置键已从“geo.wifi.uri”更改为“geo.provider.network.url”。我正在使用FF 76。 - thesdev

2
我有一个可能的解决方案:
我认为Mozilla的开发人员在位置获取过程中做了一些改变,因此现在它需要更多时间,并且getCurrentPosition功能会超时。
这将回答为什么它可以在Chrome中工作,在FF 29中工作,但不能在FF 30.0中工作的问题。
但这只是一个假设。现在让我们回到现实世界:
我在调用中设置了10秒的超时,现在它可以工作了。我是这样做的:
navigator.geolocation.getCurrentPosition(onSuccess, onError, {timeout:10000});

这个方法对我很有帮助。在Firefox 30上可以使用。


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