地理定位不适用于 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

电容器 - 地理定位不适用于 iOS,但适用于 Android

地理定位不适用于webview android

地理定位不适用于带有 Meteor 的 iOS