PermissionDeniedException
The PermissionDeniedException
is an exception that occurs when a user denies permissions to access the device’s location. This exception is commonly encountered when requesting the user’s location information through a web application that utilizes geolocation services.
When a user denies permission to access their device’s location, it means they have explicitly chosen not to share their location information with the application. This denial can be temporary or permanent, depending on the user’s preference. As a result, the application may not be able to retrieve the user’s location data, impacting the functionality that relies on this information.
Example
Let’s consider a scenario where a web application wants to display the user’s current location on a map. The application requests access to the device’s location, and if the user grants the permission, the application retrieves the latitude and longitude coordinates using geolocation services. However, if the user denies the permission, a PermissionDeniedException
may be raised.
if (navigator.permissions) {
navigator.permissions.query({ name: 'geolocation' })
.then(permissionStatus => {
if (permissionStatus.state === 'granted') {
// Access to the device's location is granted
navigator.geolocation.getCurrentPosition(
position => {
const latitude = position.coords.latitude;
const longitude = position.coords.longitude;
// Display the location on a map
showLocationOnMap(latitude, longitude);
}
);
} else if (permissionStatus.state === 'denied') {
// User denied permission to access the device's location
throw new PermissionDeniedException('User denied location access');
}
});
}
In the example above, the web application first checks if the navigator.permissions
API is available. If supported, it queries the status of the ‘geolocation’ permission. If the permission is ‘granted’, the application uses the navigator.geolocation.getCurrentPosition()
method to retrieve the current position, and then displays it on a map. However, if the permission is ‘denied’, a PermissionDeniedException
is thrown, indicating that the user denied access to their location.
Handling the PermissionDeniedException
is important to gracefully handle scenarios where the user denies location access. Application developers should appropriately notify the user about the consequences of denying the permission and provide alternative options if available.