所以,我使用这段代码:
var options = {
enableHighAccuracy: true,
timeout: 2000,
maximumAge: 100
};
navigator.geolocation.getCurrentPosition(localizeMe, errorLocalize, options);
在回调localizeMe上,我做了一些成功的事情,当这段代码不起作用时,errorLocalize会向我显示警告。
当我在Chrome上试用此代码时,没关系,我没有问题。但是在firefox上,当我尝试这段代码时,我总是有警报错误,回调错误总是被调用...你有什么想法吗?
答案 0 :(得分:2)
这里有一个针对Ubuntu的错误:https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1231273
答案 1 :(得分:0)
也许是同一个问题: firefox: navigator.geolocation.getCurrentPosition does not succeed anymore
如果你使用的是linux,请尝试另一个firefox版本。
答案 2 :(得分:0)
在Windows上它也被打破了(至少在Windows 7 x64上,还没有在其他版本上测试过)。 23.0.1没关系。
答案 3 :(得分:0)
还有其他方法,你可以使用google的http服务。
如果您使用的是角度,那么首先需要导入此
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
}
根据您的要求使用它..快乐编码