我将Meteor(1.2.0.2)应用部署到Android设备。
我通过
安装了插件 meteor add cordova:cordova-plugin-geolocation@1.0.0
添加了Cordova插件cordova-plugin-geolocation@1.0.0。
我使用了插件:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
navigator.geolocation.getCurrentPosition(function(p){ // onSuccess
console.log(p);
}, function(e){
console.log(e);
});
}
在桌面上工作完美(将p打印为Geolocation对象)但在移动设备上它只是忽略了回调(成功和错误)。
我通过设置断点在Chrome DevTools( chrome:// inspect )中对其进行了测试。它会一直执行.getCurrentPosition调用,然后(跳过或进入)只是跳过两个回调(如果我在其中设置一个断点,它们就不会被击中)。
我甚至尝试过
navigator.geolocation.getCurrentPosition(function(p){ console.log(p);
桌面控制台(工作)
undefined
Geolocation { ... }
和移动(不工作)
undefined
// nothing else is printed
可能与app的权限有关吗?
编辑:我验证了 AndroidManifest.xml ,并且插件实际设置了权限:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
答案 0 :(得分:1)
@dragonmnl,
你没有谈论超时,我必须假设你没有设置超时足够长的时间。尝试将其设置为大约20秒 - 至少。
如果你的读数很差,或者你的时间超时
大约30-45秒你应该有一个阅读。 当你阅读我给你的链接时,这是有道理的。
杰西