Skip to content

Commit e26b4fd

Browse files
Merge pull request #177 from NativeScript/dtodorov/separate-request-permissions
Allow separate request for Camera and Photos permissions
2 parents 49224cf + 183ab41 commit e26b4fd

File tree

4 files changed

+19
-3
lines changed

4 files changed

+19
-3
lines changed

README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ npm install nativescript-camera --save
3434
| Method | Description |
3535
| --- | --- |
3636
| takePicture(options?: CameraOptions) | Take a photo using the camera with an optional parameter for setting different camera options. |
37-
| requestPermissions() | Check required permissions for using device camera. Returns a Promise. |
37+
| requestPermissions() | Request permission from the user for access to their saved photos as well as access to their camera. Returns a Promise. |
38+
| requestCameraPermissions() | Request permission from the user for access to their camera. Returns a Promise. |
39+
| requestPhotosPermissions() | Request permission from the user for access to their saved photos. Returns a Promise. |
3840
| isAvailable() | Is the device camera available to use. |
3941

4042
### CameraOptions

src/camera.android.ts

+12
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,18 @@ export let requestPermissions = function () {
174174
]);
175175
};
176176

177+
export let requestPhotosPermissions = function () {
178+
return permissions.requestPermissions([
179+
(<any>android).Manifest.permission.WRITE_EXTERNAL_STORAGE,
180+
]);
181+
};
182+
183+
export let requestCameraPermissions = function () {
184+
return permissions.requestPermissions([
185+
(<any>android).Manifest.permission.CAMERA
186+
]);
187+
};
188+
177189
let createDateTimeStamp = function () {
178190
let result = "";
179191
let date = new Date();

src/camera.ios.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ export let requestPermissions = function () {
200200
});
201201
};
202202

203-
let requestPhotosPermissions = function () {
203+
export let requestPhotosPermissions = function () {
204204
return new Promise(function (resolve, reject) {
205205
let authStatus = PHPhotoLibrary.authorizationStatus();
206206
switch (authStatus) {
@@ -236,7 +236,7 @@ let requestPhotosPermissions = function () {
236236
});
237237
};
238238

239-
let requestCameraPermissions = function () {
239+
export let requestCameraPermissions = function () {
240240
return new Promise(function (resolve, reject) {
241241
let cameraStatus = AVCaptureDevice.authorizationStatusForMediaType(AVMediaTypeVideo);
242242
switch (cameraStatus) {

src/index.d.ts

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ export function takePicture(options?: CameraOptions): Promise<imageAsset.ImageAs
1010
* Check required permissions for using device camera.
1111
*/
1212
export function requestPermissions(): Promise<any>;
13+
export function requestCameraPermissions(): Promise<any>;
14+
export function requestPhotosPermissions(): Promise<any>;
1315

1416
/**
1517
* Is the camera available to use

0 commit comments

Comments
 (0)