我不能让离子cordova Geolocation插件在Android或浏览器上运行,尽管相同的代码适用于iOS。即使在我获得许可后,getCurrentPosition方法也无法访问该位置。 在android上,除非我添加一个超时参数,否则getCurrentPosition永远不会返回,之后它会返回错误“Timeout expired”。 我在Android模拟器和实际设备(运行OS 6和7),Chrome和Safari上都尝试过,但都没有。
这是我的离子/系统信息:
我尝试了这些(以及更多变化):
constructor(public navCtrl: NavController,
private geolocation: Geolocation) {
navigator.geolocation.getCurrentPosition(this.onSuccess, this.onError, {timeout:5000});
}
onSuccess(position) {
alert(JSON.stringify(position));
}
onError(error) {
alert('code: '+ error.code+ '\n'+'message: '+error.message + '\n');
}
this.geolocation.getCurrentPosition({timeout:5000}).then((pos : Geoposition) => {
alert(pos+" : " +JSON.stringify(pos));
}.catch((err : PositionError)=>{
alert("error : " + err.message);
});
两者都给出相同/相似的结果,如上所述