我已经使用cordova v3.4.1来构建android和ios应用程序,在ios geolocation函数返回非常快并且工作正常,但在android上,有时它无法正常工作.
奇怪的是我重新启动Android手机后,它运行正常.在不到几个小时的时间内,地理定位在wifi和3G上都很快得到了定位.
但是在serval小时之后,我再次打开应用程序,地理位置无法正常工作.有时当我在外面时,它可以获得gps卫星的位置,但很慢,经常发生超时错误.
我尝试删除应用程序并重新安装它,但问题仍然存在,除非重新启动我的Android手机.当我重新启动我的Android手机,地理位置功能在未来几个小时再次正常工作.
我有测试serval android的手机,如samsang note2,galaxy4等,他们都有同样的问题.当我重新启动它时,他们可以非常快速地获得位置.
这个问题困扰了我很长一段时间,所以有人帮助我?
这是我的代码如下:
navigator.geolocation.getCurrentPosition(function(pos){
cb(null,pos)
},function(errMsg){
navigator.geolocation.getCurrentPosition(function(pos){
cb(null,pos)
},function(errMsg){
cb(errMsg)
}, {
enableHighAccuracy: true,
timeout: 60*1000*2,
maximumAge: 1000*60*10
});
}, {
enableHighAccuracy: false,
timeout: 10*1000,
maximumAge: 1000*60*10
});
Run Code Online (Sandbox Code Playgroud)
我的config.xml:
<feature name="Geolocation">
<param name="android-package" value="org.apache.cordova.geolocation.GeoBroker" />
</feature>
Run Code Online (Sandbox Code Playgroud)