권한 (Permission)
카메라, 위치, 알림, 연락처 등 앱 권한을 통합 관리하는 모듈입니다.
개요
appify.permission은 다양한 시스템 권한의 상태를 확인하고 요청하는 통합 인터페이스를 제공합니다. 단일 권한과 복수 권한 모두 처리할 수 있으며, 복수 권한은 순차(checkAll, requestAll) 또는 병렬(checkAllParallel) 방식으로 처리할 수 있습니다. 각 모듈별 권한 메서드보다 세밀한 상태 제어가 필요한 경우에 사용합니다.
API
check(type: PermissionType): Promise<PermissionStatus>
단일 권한의 현재 상태를 확인합니다.
매개변수
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
| type | PermissionType | 예 | 확인할 권한 유형 |
반환값: Promise<PermissionStatus> - 권한 상태
예제
import { appify } from '@nolraunsoft/appify-sdk';
const status = await appify.permission.check('camera');
console.log('카메라 권한 상태:', status);
request(type: PermissionType): Promise<PermissionStatus>
단일 권한을 사용자에게 요청합니다.
매개변수
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
| type | PermissionType | 예 | 요청할 권한 유형 |
반환값: Promise<PermissionStatus> - 요청 후 권한 상태
예제
import { appify } from '@nolraunsoft/appify-sdk';
const result = await appify.permission.request('camera');
if (result === 'granted') {
// 카메라 기능 사용 가능
}
checkAll(types: PermissionType[]): Promise<PermissionResults>
여러 권한의 상태를 순차적으로 확인합니다.
매개변수
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
| types | PermissionType[] | 예 | 확인할 권한 유형 배열 |
반환값: Promise<PermissionResults> - 각 권한 유형을 키로 갖는 상태 객체
예제
import { appify } from '@nolraunsoft/appify-sdk';
const results = await appify.permission.checkAll(['camera', 'location']);
console.log('카메라 권한:', results.camera);
console.log('위치 권한:', results.location);
requestAll(types: PermissionType[]): Promise<PermissionResults>
여러 권한을 순차적으로 요청합니다.
매개변수
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
| types | PermissionType[] | 예 | 요청할 권한 유형 배열 |
반환값: Promise<PermissionResults> - 각 권한 유형을 키로 갖는 상태 객체
예제
import { appify } from '@nolraunsoft/appify-sdk';
const results = await appify.permission.requestAll(['camera', 'contacts']);
checkAllParallel(types: PermissionType[]): Promise<PermissionResults>
여러 권한의 상태를 병렬로 확인합니다.
매개변수
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
| types | PermissionType[] | 예 | 확인할 권한 유형 배열 |
반환값: Promise<PermissionResults> - 각 권한 유형을 키로 갖는 상태 객체
예제
import { appify } from '@nolraunsoft/appify-sdk';
const results = await appify.permission.checkAllParallel([
'camera',
'location',
'notification',
]);
타입 정의
PermissionType
| 값 | 설명 |
|---|---|
'notification' | 푸시 알림 권한 |
'location' | 위치 정보 권한 |
'camera' | 카메라 권한 |
'contacts' | 연락처 접근 권한 |
PermissionStatus
| 값 | 설명 |
|---|---|
'granted' | 권한이 허용됨 |
'denied' | 권한이 거부됨 |
'undetermined' | 아직 권한 요청이 이루어지지 않음 |
플랫폼별 참고사항
'undetermined'상태에서request를 호출하면 시스템 권한 요청 다이얼로그가 표시됩니다.'denied'상태에서 재요청이 필요한 경우appify.linking.openSettings()로 설정 화면을 안내하세요.checkAllParallel은 순차 방식보다 빠르지만, 권한 다이얼로그가 동시에 여러 개 표시될 수 있어 UX에 유의해야 합니다.