Object “permission”
Object > NativeObject > Permission
Allows to request runtime permissions which are required to access certain device features. Trying to access a Tabris.js API without a required permission will throw an Error
.
A permission can be either a category (supported on Android and iOS) or a specific Android permission name.
See the permissions documentation for full details on how to handle runtime permissions.
Type: | Permission extends NativeObject |
Constructor: | private |
Singleton: | permission |
Namespace: | tabris |
Direct subclasses: | None |
JSX Support: | No |
Examples
JavaScript
import {permission} from 'tabris';
if (permission.isAuthorized('camera')) {
console.log('Camera permission is available');
} else {
(async () => {
const status = await permission.requestAuthorization('camera');
console.log(`Camera permission has been ${status}.`);
})();
}
See also:
JSX Simple approach to check and request permissions [► Run in Playground]
TSX Full featured example with multiple permissions and states [► Run in Playground]
Methods
getAuthorizationStatus(…permissions)
Checks the authorization status for a given set of permissions.
Since an app permission can change during the apps lifecycle or when it is changed in the app settings, it is recommended to check the permissions status before making API calls that require a granted permission.
Parameter | Type | Description |
---|---|---|
…permissions | string[] |
A list of permissions to get the authorization status for. |
Returns: string
isAuthorizationPossible(…permissions)
Checks if any of the given permissions allow to request authorization. A permission is regarded as allowed to authorize when its status is either 'undetermined'
or 'declined'
.
Parameter | Type | Description |
---|---|---|
…permissions | string[] |
A list of permissions to check if authorization is possible. |
Returns: boolean
isAuthorized(…permissions)
Checks whether the given set of permissions is authorized. A set of permissions is regarded as authorized when the status of all permissions is 'granted'
.
Parameter | Type | Description |
---|---|---|
…permissions | string[] |
A list of permissions to check its authorization status. |
Returns: boolean
requestAuthorization(…permissions)
Request authorization for a set of permissions.
If any of the permissions allow to request authorization, the method call will prompt the user to grant the permission and returns the result in the resolved promise. If the status can not be changed, the current status is returned by the resolved promise.
Parameter | Type | Description |
---|---|---|
…permissions | string[] |
A list of permissions to request authorization for. |
Returns: Promise<'undetermined'
| 'granted'
| 'declined'
| 'denied'
| 'rejected'>
withAuthorization(permissions, onAuthorized, onUnauthorized, onError)
Tries to authorize access to the given permissions, either by already holding the permissions or by requesting authorization for the given permissions. When the result is 'granted'
the onAuthorized
callback will be invoked. If any other state is determined the onUnauthorized
callback will be invoked. In case of an Error
the onError
callback will be invoked.
Parameter | Type | Description |
---|---|---|
permissions | string | string[] |
An individual permission or a list of permissions to gain authorization for. |
onAuthorized | () => any |
A callback to be invoked if the desired permissions could be granted. The permissions will have the status 'granted ’. |
onUnauthorized | () => any |
A callback to be invoked when the desired permissions could not be granted. |
onError | (error: Error) => any |
A callback to be invoked if the request failed. |
Returns: undefined