nativescript-advanced-permissions
by b.ingham | v1.2.0
Permissions for both Android and IOS.
npm i --save nativescript-advanced-permissions

nativescript-advanced-permissions

npm version

Build Status

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

    
import { hasCameraPermission, requestCameraPermission } from 'nativescript-advanced-permissions/camera';

// also supports 'nativescript-advanced-permissions/files';
// also supports 'nativescript-advanced-permissions/calendar';
// also supports 'nativescript-advanced-permissions/location';


if( !hasCameraPermission() ) {
requestCameraPermission().then((hasPermission) => {
if( hasPermission ) {
// do something cool
} else {
// don't do something
}
});
}

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