2015-10-27 27 views
9

Có vấn đề khi cố gắng xác định xem có ai đó đã tắt GPS trong Ionic/Cordova hay không.Lỗi hiển thị Ionic nếu tắt GPS

Đây là những gì tôi đang cố gắng làm tại thời điểm này, điều này làm việc trong trình duyệt tốt nhưng không phải trên Android.

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

Một điều khác là có ai biết liệu có thể đưa ra lời nhắc bật GPS với Ionic/cordova không?

Bất kỳ ai có ý tưởng nào?

Trả lời

17

Vui lòng thêm this plugin,

cordova plugin add cordova.plugins.diagnostic 

1.Determine nếu ai đó có GPS của họ bị tắt trong Ionic/Cordova

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.Giving một dấu nhắc để bật GPS

Controller

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

Cảm ơn bạn đã nhắc plugin, tôi không nghĩ rằng nó đã tồn tại. –

+0

Xin chào, tôi không phải là chủ của chủ đề này. Tôi đã trả lời câu hỏi này và thấy giải pháp của bạn. –

+2

Có cách nào để xem vị trí được bật và tắt không? – Seiyria

3

Tôi nghĩ rằng việc sử dụng plugin ngCordova dễ dàng hơn khi phát hiện trạng thái GPS. Bạn có thể thử hai plugin này:

  1. $cordovaGeolocation:
    • Plugin này sử dụng Wifi/3G/GPS để phát hiện vị trí hiện tại.
    • Nó cũng có chức năng watch và gọi lại lỗi. Bạn nên sử dụng nó để kiểm tra.
  2. Hoặc $cordovaBackgroundGeolocation:
    • này hoạt động giống như $cordovaGeolocation nhưng có battery-saving tính năng.
  3. Đối với tin nhắn nhanh, tôi nghĩ cách duy nhất là thực hiện thông qua plugin được viết bằng mã Java. Hãy xem Introduction to custom Cordova plugin development để biết thêm chi tiết.
2

Hãy thử với điều này

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(); 
}); 

tôi đã cùng một vấn đề, và nó làm việc này đối với tôi

Các vấn đề liên quan