[英]Meteor's cordova: geolocation plugin doesn't work on mobile
我正在将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
也许与应用程序的权限有关?
编辑 :我验证了AndroidManifest.xml ,并且权限实际上是由插件设置的:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
@dragonmnl,
您没有谈论超时,我必须假设您没有将超时设置足够长的时间。 尝试将其设置为至少20秒左右。
如果您的读数很差,或者您正在超时
在大约30-45秒内,您应该阅读一次。 当您阅读我给您的链接时,这将很有意义。
杰西
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.