Permissions
디바이스 권한(클립보드·연락처·앨범·카메라·마이크·위치)의 조회·요청 기능과 권한 에러 클래스를 제공해요.
API 목록
권한 에러 클래스 7종(OpenCameraPermissionError 등)도 함께 제공돼요 — 권한이 필요한 API가 거부됐을 때 이 클래스들의 인스턴스가 던져져요.
withPermission
기능 설명
권한이 필요한 함수를 감싸요. 감싼 함수를 호출하면 먼저 해당 권한을 요청하고, 거부되면 errorClass로 전달한 에러를 던지고, 허용되면 원래 함수를 실행해요.
반환된 함수에는 같은 권한을 조회하는 getPermission()과 권한을 다시 요청하는 openPermissionDialog()가 정적 메서드로 붙어요. 프레임워크 내부의 Clipboard.getText, Device.getPhotos 같은 API가 이 함수로 만들어져서 Clipboard.getText.getPermission() 형태로 권한을 확인할 수 있어요.
타입
Params
function withPermission<T extends (...args: any[]) => any>(
fn: T, // 권한이 허용된 뒤 실행할 함수
name: PermissionName, // 요청할 권한 이름
access: PermissionAccess, // 요청할 접근 종류
errorClass: new () => PermissionErrorType, // 권한이 거부되면 던질 에러 클래스
): PermissionFunctionWithDialog<T>;Response
에러
errorClass로 전달한 에러
권한 요청 결과가 denied인 경우예요.
예시 코드
PermissionError
기능 설명
권한 에러의 공통 부모 클래스예요. 여러 권한 에러를 한 번에 처리할 때 error instanceof PermissionError로 확인할 수 있어요. name은 `${methodName} permission error` 형식이에요.
타입
Params
Response
예시 코드
GetClipboardTextPermissionError
기능 설명
클립보드 읽기 권한이 거부되었을 때 발생하는 에러예요. error instanceof GetClipboardTextPermissionError로 확인할 수 있어요. PermissionError를 상속해요.
타입
예시 코드
SetClipboardTextPermissionError
기능 설명
클립보드 쓰기 권한이 거부되었을 때 발생하는 에러예요. error instanceof SetClipboardTextPermissionError로 확인할 수 있어요. PermissionError를 상속해요.
타입
예시 코드
FetchContactsPermissionError
기능 설명
연락처 권한이 거부되었을 때 발생하는 에러예요. error instanceof FetchContactsPermissionError로 확인할 수 있어요. PermissionError를 상속해요.
타입
예시 코드
FetchAlbumPhotosPermissionError
기능 설명
사진첩 권한이 거부되었을 때 발생하는 에러예요. error instanceof FetchAlbumPhotosPermissionError로 확인할 수 있어요. PermissionError를 상속해요.
타입
예시 코드
GetCurrentLocationPermissionError
기능 설명
위치 권한이 거부되었을 때 발생하는 에러예요. error instanceof GetCurrentLocationPermissionError로 확인할 수 있어요. PermissionError를 상속해요.
타입
예시 코드
StartUpdateLocationPermissionError
기능 설명
위치 업데이트 권한이 거부되었을 때 발생하는 에러예요. GetCurrentLocationPermissionError와 같은 클래스를 가리키는 별칭이라서 error instanceof StartUpdateLocationPermissionError는 GetCurrentLocationPermissionError 인스턴스에도 true예요.
타입
예시 코드
OpenCameraPermissionError
기능 설명
카메라 권한이 거부되었을 때 발생하는 에러예요. error instanceof OpenCameraPermissionError로 확인할 수 있어요. PermissionError를 상속해요.
타입
예시 코드
PermissionName
기능 설명
권한을 식별하는 이름 타입이에요.
타입
PermissionAccess
기능 설명
권한의 접근 종류 타입이에요. read/write는 클립보드·연락처·사진첩처럼 읽기/쓰기가 구분되는 권한에, access는 위치·카메라·마이크처럼 구분이 없는 권한에 사용해요.
타입
PermissionStatus
기능 설명
권한의 상태 타입이에요. notDetermined는 사용자가 아직 권한 요청에 응답하지 않은 상태예요.
타입
PermissionFunctionName
기능 설명
권한 에러가 발생하는 함수 이름 타입이에요. PermissionError의 name을 구성할 때 사용해요.
타입
PermissionErrorConstructorParams
기능 설명
PermissionError 생성자에 전달하는 파라미터 타입이에요.
타입
PermissionErrorType
기능 설명
withPermission의 errorClass 파라미터가 만들어 내는 에러 인스턴스의 형태예요.
타입
GetPermissionFunction
기능 설명
withPermission으로 래핑된 함수에 붙는 getPermission 정적 메서드의 시그니처예요.
타입
PermissionDialogFunction
기능 설명
withPermission으로 래핑된 함수에 붙는 openPermissionDialog 정적 메서드의 시그니처예요.
타입
PermissionFunctionWithDialog
기능 설명
withPermission이 반환하는 함수 타입이에요. 원래 함수 시그니처에 getPermission/openPermissionDialog 정적 메서드가 더해진 형태예요.
타입
도움이 되었나요?