Geolocation.latLng()无法在android

时间:2015-12-26 01:42:15

标签: cordova meteor

我正在使用mdg:geolocation软件包,我正试图在Android设备上运行它,但我不再使用lat和lang了,当我几个月前尝试过它工作正常时

我正在使用该软件包的1.0.3 *版本

enter image description here

chrom正在抛出警告,这将我带到page

因为这是警告它应该有效。

我甚至试图通过提供--mobile-server=https://myapp.com来运行应用程序,但它仍然无效。

任何想法?

我的版本 流星 - 1.1。*(不是最新的) 地理位置 - 1.0.3

修改

我尝试使用下面的导航器对象

var onSuccess = function(position) {
   console.log('Latitude: '          + position.coords.latitude          + '\n' +
  'Longitude: '         + position.coords.longitude         + '\n' +
  'Altitude: '          + position.coords.altitude          + '\n' +
  'Accuracy: '          + position.coords.accuracy          + '\n' +
  'Altitude Accuracy: ' + position.coords.altitudeAccuracy  + '\n' +
  'Heading: '           + position.coords.heading           + '\n' +
  'Speed: '             + position.coords.speed             + '\n' +
  'Timestamp: '         + position.timestamp                + '\n');
};

// onError Callback receives a PositionError object
//
function onError(error) {
  console.log('code: '    + error.code    + '\n' +
  'message: ' + error.message + '\n');
}

navigator.geolocation.getCurrentPosition(onSuccess, onError);

我没有在控制台中获得任何日志没有错误或成功回调被称为

编辑2

当在Android手机上运行我的应用程序时,这不起作用,如果我在网络中运行相同,我会得到lat和lang值。

编辑3

我使用--server指向https://myapp.com来构建apk,但这仍无效。

编辑4

我还有一个包含所有最新版本的项目,尝试了上述所有步骤仍然无效(即使使用build apk版本)

编辑5

尝试@Adam建议后,我收到了以下错误

code: 3 message: Timeout expired

尝试了与timeoutenablehighaccuracymaxage不同的选项。

2 个答案:

答案 0 :(得分:2)

使用Android模拟器,您可能必须先提供位置。所以,运行类似:

~/.meteor/android_bundle/android-sdk/platform-tools/adb emu geo fix <longitude value> <latitude value>

答案 1 :(得分:1)

你坚持你的问题?我可以通过使用

使其工作
var geo_err = Geolocation.error();
if(geo_err != null) alert(geo_err.message);
var pos = Geolocation.latLng();
if(pos == null) return false;

您需要将其放在帮助器中,因为它需要迭代它等待响应,否则将始终给出错误。 我使用一个按钮来改变Session变量的状态,稍后它会激活帮助程序,因此可以多次调用它。 希望有帮助,我在Android和Chrome测试过并且有效。 唯一的问题是我不能让用户请求许可,如果gps没有被激活它给了我

  

超时错误   所以...期待。