【发布时间】:2015-01-25 04:30:58
【问题描述】:
app.controller('dashboard', function($scope){
$scope.getPosition = function(position){
$scope.acc = position.coords;
$scope.lat = position.coords.latitude;
$scope.lng = position.coords.longitude;
$scope.$apply();
};
$scope.getPositionErr = function(error){
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
};
navigator.geolocation.getCurrentPosition($scope.getPosition, $scope.getPositionErr, {maximumAge: 0, timeout: 6000, enableHighAccuracy:false});
});
我正在将 Angular JS 和 Cordova 用于 Android 应用程序。 此代码在桌面上运行良好,但在带有 Lollipop 的 Nexus 4 上运行良好。 根据 Cordova 的要求,控制器代码也在 deviceready 之后执行
我试过了
- 将 HighAccuracy 设置为 false
- 删除地理定位插件,使其使用 Wifi 的默认位置
- 设备重启
- 清除浏览器缓存
- 飞行模式开/关
- Wifi 开/关
- 开启/关闭移动数据
但我无法获得经纬度,而且地理位置总是超时。
它仅在我从设置中启用位置/GPS 时才有效。启用后,代码按预期工作。
【问题讨论】:
-
六秒可能不足以超时。大多数大型应用程序至少运行 30 秒以实现位置超时。您是否尝试过更长的超时时间?
-
是的,我试过 1 分钟,也没有时间。
-
现在这是类似的东西。在 Android 的 Chrome 浏览器中打开 Geo Location Exmaple。来自 w3schools 的简单地理定位示例。除非你打开你的位置/GPS,否则你将无法获得你的纬度。
-
您是否在使用任何位置欺骗应用程序,例如“假 GPS”?然后删除它并重试。
-
我只是在尝试使用默认设置的桌面 Chrome。我使用 chrome 作为最终用户。
标签: android html cordova geolocation