권한 (permission)
개요
permission 네임스페이스는 디바이스의 주요 권한(카메라, 위치, 마이크, 푸시 알림 등)의
상태를 확인하고 요청하는 기능을 제공합니다.
앱이 특정 권한을 필요로 할 경우, 해당 권한이 허용되었는지 확인하고, 필요 시 사용자에게 권한 요청을 수행할 수 있습니다.
필수 선행 작업
(선택사항) microphone 권한 사용
nachocode 대시보드의 [ 앱 설정 > 고급 설정 > 안드로이드 고급 설정 ]에서 [ 마이크 사용 ] 토글을 활성화하여 앱 설정 완료
(선택사항) location 권한 사용
nachocode 대시보드의 [ 앱 설정 > 고급 설정 > 안드로이드 고급 설정 ]에서 [ 위치/지도 사용 ] 토글을 활성화하여 앱 설정 완료

타입 정의
PermissionType
nachocode SDK에서 지원하는 디바이스의 앱 권한 유형입니다.
const PERMISSION_TYPES = {
/**
* Camera usage permission
* @since 1.2.0
*/
CAMERA: 'camera',
/**
* Location access permission
* @since 1.2.0
*/
LOCATION: 'location',
/**
* Microphone usage permission
* @since 1.2.0
*/
MICROPHONE: 'microphone',
/**
* Photo usage permission
* @since 1.5.0
*/
PHOTO: 'photo',
/**
* Push notification permission
* @since 1.2.0
*/
PUSH: 'push',
} as const;
| 값 | 설명 | 추가된 버전 |
|---|---|---|
camera | 카메라 사용 권한 | v1.2.0 |
location | 위치 정보 접근 권한 | v1.2.0 |
microphone | 마이크 사용 권한 | v1.2.0 |
photo | 사진 사용 권한 | v1.5.0 |
push | 푸시 알림 권한 | v1.2.0 |
메서드 목록
| 메서드 | 설명 | 추가된 버전 |
|---|---|---|
checkPermission(option, callback) | 특정 권한이 허용되었는지 확인하고, 필요 시 권한 요청을 수행합니다. | v1.2.0 |
메서드 상세
checkPermission(option: { type: PermissionType, ask?: boolean }, callback?: (granted: boolean) => void): void
- since : v1.2.0
경고
microphone과 location 권한은 필수 선행 작업이 완료되어야 사용할 수 있습니다.
설명
지정된 권한(type)이 이미 허용되었는지 여부를 확인합니다.
ask 옵션이 true일 경우, 사용자가 권한을 허용하지 않았다면 권한 요청 팝업을 표시합니다. 콜백 함수의 매개 변수로 허용 여부를 전달합니다.
매개변수
| 이름 | 타입 | 필수 여부 | 설명 |
|---|---|---|---|
option | { type: PermissionType, ask?: boolean } | ✅ | 확인할 권한 유형 및 권한 요청 여부 (ask) 포함 객체 |
callback | (granted: boolean) => void (optional) | ❌ | 권한이 허용되었는지 여부를 전달받는 콜백 함수 |
type: 확인할 권한 유형 (camera,location,microphone,photo,push)ask:true인 경우, 권한이 허용되지 않았을 때 요청 팝업을 표시 (default: false)
반환 값
해당 메서드는 반환 값을 가지지 않으며, 결과는 callback을 통해 비동기적으로 제공됩니다.
콜백 함수는 권한이 허용되었을 경우 true, 거부되었을 경우 false 값을 전달받습니다.
사용 예제
// ex. 푸시 알림 권한 허용 여부를 확인합니다.
// 권한이 허용되지 않은 경우, 자동으로 OS 팝업을 통해 권한을 요청합니다.
Nachocode.permission.checkPermission({ type: 'push', ask: true }, granted => {
// 앱 유저의 권한 허용 여부가 매개 변수 granted에 전달 됩니다.
if (granted) {
alert('푸시 권한 허용됨.');
} else {
alert('푸시 권한 거부됨.');
}
});
주의 사항
ask옵션이false일 경우, 사용자가 권한을 거부했더라도 팝업을 띄우지 않고 현재 권한 상태만 반환합니다.ask옵션이true일 경우, 사용자가 이전에 "권한을 요청하지 않음"을 선택한 경우 OS 팝업으로 다시 요청할 수 없습니다.- nachocode 앱에서는 OS 팝업으로 다시 요청할 수 없을 때, 기본적으로 권한 설정 페이지로 이동 하도록 구현이 되어있습니다.
- 특정 OS 버전에서는 권한 요청이 거부되었을 때, 앱 유저가 설정에서 직접 변경해야만 권한을 활성화할 수 있습니다.