nativescript-advanced-permissions
This Plugin is a wrap around Nathanael's nativescript-permissions plugin, while providing IOS Permissions with a matching API.
Installation
Describe your plugin installation steps. Ideally it would be something like:
tns plugin add nativescript-advanced-permissions
Usage
Right now to request the Camera Permissions, we use it like this
; // also supports 'nativescript-advanced-permissions/files'; // also supports 'nativescript-advanced-permissions/calendar'; // also supports 'nativescript-advanced-permissions/location'; if ! ;
API
this plugin has been split into smaller 'sub-modules', which when use give access to the specified permissions.
the sub-modules that we currently include are : files
, calendar
, location
, camera
and for each sub-module we follow the same naming convention: requestXPermission/hasXPermission
where x is the capitalised sub-module name.
Camera Module
Usage
import { hasCameraPermission, requestCameraPermission } from 'nativescript-advanced-permissions/camera'; if( !hasCameraPermission() ) { requestCameraPermission().then((hasPermission) => { if( hasPermission ) { // do something cool } else { // don't do something } }); }
API
Function | Return Type | Description |
---|---|---|
hasCameraPermission() | boolean | returns whether or not the application has the permissions to use the camera |
requestCameraPermission() | Promise | requests the user to allow Camera Permissions, returns a truthy promise if they do, and returns falsy if they don't |
Location Module
Usage
import { goToAppSettings } from 'nativescript-advanced-permissions/core'; import { hasLocationPermission, requestLocationPermission, isLocationEnabled } from 'nativescript-advanced-permissions/location'; if ( isLocationEnabled() ) { if( !hasCameraPermission() ) { requestCameraPermission().then((hasPermission) => { if( hasPermission ) { // do something cool } else { // don't do something } }); } } else { // tell the user to enable Location Services. alert('Please Enable Location Settings...').then(() => goToAppSettings()); }
API
Function | Return Type | Description |
---|---|---|
hasLocationPermission() | boolean | returns whether or not the application has the permissions to use the Location Services |
requestLocationPermission() | Promise | requests the user to allow Location Permissions, returns a truthy promise if they do, and returns falsy if they don't |
isLocationEnabled() | boolean | returns whether or not the location services are enabled on device. |
Calendar Module
Usage
import { hasCalendarPermission, requestCalendarPermission } from 'nativescript-advanced-permissions/calendar'; if( !hasCalendarPermission() ) { requestCalendarPermission().then((hasPermission) => { if( hasPermission ) { // do something cool } else { // don't do something } }); }
API
Function | Return Type | Description |
---|---|---|
hasCalendarPermission() | boolean | returns whether or not the application has the permissions to use the Calendar |
requestCalendarPermission() | Promise | requests the user to allow Calendar Permissions, returns a truthy promise if they do, and returns falsy if they don't |
License
Apache License Version 2.0, January 2004
Special Thanks!
Thanks to the genius Nathaniel Anderson for the Android Permissions Plugin, which i make use of in this plugin Nativescript-Permissions