Comments (5)
If Location Services is enabled, canRequest()
will return false. It is only true if Location Services is disabled. Try the example project to see the logic.
from cordova-plugin-request-location-accuracy.
Your example from the README will never deliver a location point if that is true:
cordova.plugins.locationAccuracy.canRequest(function(canRequest){
if(canRequest){
cordova.plugins.locationAccuracy.request(function(){
console.log("Request successful");
}, function (error){
console.error("Request failed");
if(error){
// Android only
console.error("error code="+error.code+"; error message="+error.message);
if(error.code !== cordova.plugins.locationAccuracy.ERROR_USER_DISAGREED){
if(window.confirm("Failed to automatically set Location Mode to 'High Accuracy'. Would you like to switch to the Location Settings page and do this manually?")){
cordova.plugins.diagnostic.switchToLocationSettings();
}
}
}
}, cordova.plugins.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY // iOS will ignore this
);
}
});
Am I missing something? :o
from cordova-plugin-request-location-accuracy.
The iOS plugin implementation is intended to request a location in order trigger the native dialog to enable Location Services to be switched ON if it is OFF, not to deliver a location (which is the job of cordova-plugin-geolocation
) hence the example above is valid. Here is a commented version of the above example to indicate the logic:
cordova.plugins.locationAccuracy.canRequest(function(canRequest){ // Check if plugin is able to request the native dialog
if(canRequest){ // If it can request the dialog
// Location Services is OFF
cordova.plugins.locationAccuracy.request(function(){ // Make a location request to invoke the native dialog
console.log("Request successful"); // The location request was successful
}, function (error){
console.error("Request failed"); // The location request failed
if(error){
// Android only
console.error("error code="+error.code+"; error message="+error.message);
if(error.code !== cordova.plugins.locationAccuracy.ERROR_USER_DISAGREED){
if(window.confirm("Failed to automatically set Location Mode to 'High Accuracy'. Would you like to switch to the Location Settings page and do this manually?")){
cordova.plugins.diagnostic.switchToLocationSettings();
}
}
}
}, cordova.plugins.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY // iOS will ignore this
);
}else{
// Location Services is already ON
}
});
from cordova-plugin-request-location-accuracy.
Aww, now it makes sense. I thought it was canRequestLocation , but it is canRequestDialog. Thank you ;)
from cordova-plugin-request-location-accuracy.
The method name is misleading then.
It should be called isLocationPermissionRequired()
Cause when CanRequest returns false that means you can't access the location where it actually means that you don't need to ask permission!
from cordova-plugin-request-location-accuracy.
Related Issues (20)
- I am getting this error: ReferenceError: onError is not defined HOT 2
- Get promise of the result of activating geolocation HOT 5
- Location Accuracy Plugin Nothing happens when I fire the function HOT 6
- when turning on the gps it is not recognized by the google maps plugin HOT 1
- Plugin install error for Android build HOT 24
- Ionic Error Uncaught (in promise): plugin_not_installed HOT 1
- Compatibility problems between phonegap-plugin-push 2.2.3 and cordova-plugin-request-location-accuracy using Cordova 8 and [email protected] HOT 2
- iOS system dialog asking "turn on location services" does not fire cordova pause or resume events HOT 4
- Request displays same result on press cancel or ok button HOT 2
- Android 7: Plugin does not work if location services are already turned on HOT 1
- [Question] Accessing location settings on iOS HOT 2
- Not working in Ionic 3 HOT 1
- Conflicts with google plus signin HOT 3
- Version conflict with FCM plugin HOT 1
- How to request high accuracy using Google services even when locations services are already on? HOT 2
- Concurrent request using canRequest() don't trigger a callback HOT 4
- Error : A request is already in progress HOT 1
- Feature Request: create custom messages for native prompt HOT 1
- Location changer
- Update Cordova plugin "Request location accuracy" to match current compatibility
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cordova-plugin-request-location-accuracy.