Die documentation states für isLocationEnabled()
:
Gibt true zurück, wenn das Gerät für Standorteinstellung aktiviert ist. Auf Android-Geräten wird True zurückgegeben, wenn der Standortmodus aktiviert ist. Auf iOS-Geräten wird True zurückgegeben, wenn die Standortdienste aktiviert sind.
d. H. Dies prüft nur, ob die Geräteeinstellung aktiviert ist. entweder
Sie können jedoch isLocationAvailable()
auf iOS und Windows 10 Handys verwenden, um dies wahr, wenn sowohl die Geräteeinstellung aktiviert ist und die Anwendung ist autorisiert Ort zu verwenden. Wenn der Standort aktiviert ist, handelt es sich bei den zurückgegebenen Standorten um eine Mischung aus GPS-Hardware, Netzwerktriangulation und Wifi-Netzwerk-IDs. Bei Android wird True zurückgegeben, wenn der Standortmodus aktiviert ist und ein beliebiger Modus ausgewählt ist (z. B. Batteriesparen, Nur Gerät, Hohe Genauigkeit) UND wenn die App den Standort verwenden darf. Wenn Standort aktiviert ist, sind die Standorte zurück abhängig von der Lage Modus
Dies überprüft „wenn sowohl die Geräteeinstellung aktiviert ist und die Anwendung zugelassen Standort verwenden“:
cordova.plugins.diagnostic.isLocationAvailable(
function(enabled) {
if (enabled === false) {
$state.go("errorTwo");
},
}, function(error) {
alert("The following error occurred: " + error);
}
});
Oder Sie kann isLocationAuthorized()
nennen, wenn die App Standort zu verwenden, um zu prüfen autorisiert, bevor die Geräteeinstellung Überprüfung:
cordova.plugins.diagnostic.isLocationAuthorized(function(authorized){
console.log("Location is " + (authorized ? "authorized" : "unauthorized"));
if(authorized){
cordova.plugins.diagnostic.isLocationEnabled(
function(enabled) {
if (enabled === false) {
$state.go("errorTwo");
},
}, function(error) {
alert("The following error occurred: " + error);
}
});
}
}, function(error){
console.error("The following error occurred: "+error);
});
zu „warten“, bis die App um Erlaubnis, bevor checkin zu verwenden Standort hat g, müssen Sie die Kontrolle über die Anfrage für Standort Autorisierung:
function checkLocationSetting(){
cordova.plugins.diagnostic.isLocationEnabled(
function(enabled) {
if (enabled === false) {
$state.go("errorTwo");
},
}, function(error) {
alert("The following error occurred: " + error);
}
});
}
cordova.plugins.diagnostic.isLocationAuthorized(function(authorized){
console.log("Location is " + (authorized ? "authorized" : "unauthorized"));
if(authorized){
checkLocationSetting();
}else{
cordova.plugins.diagnostic.requestLocationAuthorization(function(status){
if(status == cordova.plugins.diagnostic.permissionStatus.GRANTED){
checkLocationSetting();
}else{
console.warn("Permission denied to use location");
}
}, function(error){
console.error(error);
});
}
}, function(error){
console.error("The following error occurred: "+error);
});
Vielen Dank !! – olivier