地理定位不适用于 Firefox
Posted
技术标签:
【中文标题】地理定位不适用于 Firefox【英文标题】:geolocation doesn't work with Firefox 【发布时间】:2013-10-28 10:31:17 【问题描述】:所以,我使用这个代码:
var options =
enableHighAccuracy: true,
timeout: 2000,
maximumAge: 100
;
navigator.geolocation.getCurrentPosition(localizeMe, errorLocalize, options);
在回调 localizeMe 上,我做了一些成功的事情,并且 errorLocalize 在此代码不起作用时向我显示警报。
当我在 Chrome 上尝试此代码时,没关系,我没有问题。但是在firefox上,当我尝试这段代码时,我总是有我的警报错误,回调错误总是调用......你有什么想法吗?
【问题讨论】:
错误是什么(.code)? 相关 Mozilla 错误 - bugzilla.mozilla.org/show_bug.cgi?id=675533 希望这有帮助! 【参考方案1】:我相信,自 v24 以来,Firefox、Linux 和 Mac 上的地理定位功能已被破坏。
这里有一个针对 Ubuntu 的错误:https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1231273
【讨论】:
【参考方案2】:也许是同一个问题: firefox: navigator.geolocation.getCurrentPosition does not succeed anymore
如果您使用的是 linux,请尝试另一个 firefox 版本。
【讨论】:
【参考方案3】:在 Windows 上它也坏了(至少在 Windows 7 x64 上,还没有在其他版本上测试过)。 23.0.1 还可以。
【讨论】:
【参考方案4】:还有其他方法,你可以使用谷歌的http服务。
如果您使用的是 angular,那么首先您需要导入它
import Http, Headers, RequestOptions, Response from '@angular/http';
或者您可以根据您的脚本语言使用其他方式。 然后将此代码添加到您正在编写上述代码的方法之一中
let body =
enableHighAccuracy: true,
timeout: 2000,
maximumAge: 100
;
let headers = new Headers( 'Content-Type': 'application/json' );
let options = new RequestOptions( headers: headers );
this.http.post("https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY", body, headers).map((data: any) => data.json());
当您订阅上述http请求的结果时,您将获得像这样的json格式的所需数据
"location":
"lat": 21.1247647,
"lng": 79.04754489999999
,
"accuracy": 625
根据您的要求使用它..快乐编码
【讨论】:
以上是关于地理定位不适用于 Firefox的主要内容,如果未能解决你的问题,请参考以下文章
Javascript地理定位不适用于更新的android chrome
Phonegap 2.5.0 地理定位不适用于 android 4.0.4