Meteor的cordova:地理定位插件不适用于移动设备

时间:2015-10-07 14:38:35

标签: android cordova meteor

我将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" />

1 个答案:

答案 0 :(得分:1)

@dragonmnl,

GPS is unreliable

你没有谈论超时,我必须假设你没有设置超时足够长的时间。尝试将其设置为大约20秒 - 至少。

如果你的读数很差,或者你的时间超时

  • 走出去外面
  • 确保您清楚地看到所有视野(没有阻挡视图)
  • 走进一个直径约15英尺的大圆圈

大约30-45秒你应该有一个阅读。 当你阅读我给你的链接时,这是有道理的。

杰西