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