본문으로 건너뛰기

권한 (Permission)

카메라, 위치, 알림, 연락처 등 앱 권한을 통합 관리하는 모듈입니다.

개요

appify.permission은 다양한 시스템 권한의 상태를 확인하고 요청하는 통합 인터페이스를 제공합니다. 단일 권한과 복수 권한 모두 처리할 수 있으며, 복수 권한은 순차(checkAll, requestAll) 또는 병렬(checkAllParallel) 방식으로 처리할 수 있습니다. 각 모듈별 권한 메서드보다 세밀한 상태 제어가 필요한 경우에 사용합니다.

API

check(type: PermissionType): Promise<PermissionStatus>

단일 권한의 현재 상태를 확인합니다.

매개변수

이름타입필수설명
typePermissionType확인할 권한 유형

반환값: Promise<PermissionStatus> - 권한 상태

예제

import { appify } from '@nolraunsoft/appify-sdk';

const status = await appify.permission.check('camera');
console.log('카메라 권한 상태:', status);

request(type: PermissionType): Promise<PermissionStatus>

단일 권한을 사용자에게 요청합니다.

매개변수

이름타입필수설명
typePermissionType요청할 권한 유형

반환값: Promise<PermissionStatus> - 요청 후 권한 상태

예제

import { appify } from '@nolraunsoft/appify-sdk';

const result = await appify.permission.request('camera');
if (result === 'granted') {
// 카메라 기능 사용 가능
}

checkAll(types: PermissionType[]): Promise<PermissionResults>

여러 권한의 상태를 순차적으로 확인합니다.

매개변수

이름타입필수설명
typesPermissionType[]확인할 권한 유형 배열

반환값: 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>

여러 권한을 순차적으로 요청합니다.

매개변수

이름타입필수설명
typesPermissionType[]요청할 권한 유형 배열

반환값: Promise<PermissionResults> - 각 권한 유형을 키로 갖는 상태 객체

예제

import { appify } from '@nolraunsoft/appify-sdk';

const results = await appify.permission.requestAll(['camera', 'contacts']);

checkAllParallel(types: PermissionType[]): Promise<PermissionResults>

여러 권한의 상태를 병렬로 확인합니다.

매개변수

이름타입필수설명
typesPermissionType[]확인할 권한 유형 배열

반환값: 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에 유의해야 합니다.

관련 문서