Android 爱奥尼亚自然地理定位承诺一直悬而未决
我创建了一个简单的应用程序,可以在谷歌地图上找到这个设备。 我的代码遵循官方文件- 当我在浏览器中运行ionic(使用Android 爱奥尼亚自然地理定位承诺一直悬而未决,android,geolocation,ionic3,Android,Geolocation,Ionic3,我创建了一个简单的应用程序,可以在谷歌地图上找到这个设备。 我的代码遵循官方文件- 当我在浏览器中运行ionic(使用ionic serve)时,它按预期工作,没有错误 但当我在真正的安卓设备上运行我的应用程序时,这个承诺从未得到解决,也从未被拒绝过,尽管我确信位置许可已经被授予 this.geostate = 'asking'; this.geolocation.getCurrentPosition().then((position) => { const latitu
ionic serve
)时,它按预期工作,没有错误
但当我在真正的安卓设备上运行我的应用程序时,这个承诺从未得到解决,也从未被拒绝过,尽管我确信位置许可已经被授予
this.geostate = 'asking';
this.geolocation.getCurrentPosition().then((position) => {
const latitude = position.coords.latitude;
const longitude = position.coords.longitude;
this.geostate = 'coordinates ready';
processCoordinatesSomehow(latitude, longitude);
}).catch((error) => {
this.geostate = 'error';
console.log('Error getting location', error);
});
在浏览器中,它会按预期进行切换。
但在android上,它总是一样的this.geostate==='asking'
出于实验原因,在我的应用程序的android设置中,我将位置权限设置为“询问”模式。
当我试图通过调用适当的方法获取位置时,我的智能手机显示了一个模式窗口,请求获得位置许可。
我同意了,但什么也没发生-this.geostate==='asking'
为什么geolocation的承诺在android上既没有得到解决也没有遭到拒绝,但在浏览器中却可以正常工作
*重建应用程序一点帮助都没有我想看看这里,看看安卓系统是否有任何怪癖,让你知道为什么它在地理定位方面也不符合W3C规范。地理位置选项超时可能。。getCurrentPosition({timeout:n})。或者像这样的。。。