如果关闭gps,则会出现离子显示错误

时间:2015-10-27 16:55:46

标签: android cordova gps ionic

在尝试确定是否有人在Ionic / Cordova中关闭GPS时遇到了一些问题。

这是我目前正在尝试做的事情,这在浏览器中工作正常但不在Android上。

navigator.geolocation.getCurrentPosition(function(pos) {}, function(err) {
    alert('We were unable to determine your location, please turn on your GPS/Location services');
});

另一件事是否有人知道是否有可能提示用Ionic / cordova打开GPS?

有人有任何想法吗?

3 个答案:

答案 0 :(得分:17)

请添加this插件,

cordova plugin add cordova.plugins.diagnostic

1.确定是否有人在Ionic / Cordova中关闭了GPS

<强> Contoller

if (window.cordova) {
    cordova.plugins.diagnostic.isLocationEnabled(function(enabled) {
        alert("Location is " + (enabled ? "enabled" : "disabled"));
    }, function(error) {
        alert("The following error occurred: " + error);
    });
}

2.提示打开GPS

<强> Controller

if (window.cordova) {
    cordova.plugins.diagnostic.switchToLocationSettings();
}

答案 1 :(得分:3)

我认为使用ngCordova插件检测GPS状态会更容易。 你可以尝试这两个插件:

  1. $cordovaGeolocation
    • 此插件使用Wifi / 3G / GPS检测当前位置。
    • 它还有watch函数和错误回调。你应该用它来检查。
  2. $cordovaBackgroundGeolocation
    • 此作用与$cordovaGeolocation相同,但具有battery-saving功能。
  3. 对于提示信息,我认为唯一的方法是通过Java代码编写的插件来实现。查看Introduction to custom Cordova plugin development了解详情。

答案 2 :(得分:2)

试试这个

let optionsGPS = {timeout: 4000, enableHighAccuracy: true};
Geolocation.getCurrentPosition(optionsGPS).then((result) => {
  this.loadMap(result.coords.latitude, result.coords.longitude);
}).catch((err) => {
  let alert = this.alertCtrl.create({
        title: 'Error on GPS',
        subTitle: 'You need active the GPS',
        buttons: ['Ok']
    });
    alert.present();
});

我有同样的问题,这对我有用