본문으둜 κ±΄λ„ˆλ›°κΈ°

κΆŒν•œ (permission)

πŸ”” μ΅œμ‹ ν™” 일자: 2025-02-20

κ°œμš”β€‹

permission λ„€μž„μŠ€νŽ˜μ΄μŠ€λŠ” λ””λ°”μ΄μŠ€μ˜ μ£Όμš” κΆŒν•œ(카메라, μœ„μΉ˜, 마이크, ν‘Έμ‹œ μ•Œλ¦Ό λ“±)의 μƒνƒœλ₯Ό ν™•μΈν•˜κ³  μš”μ²­ν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.
앱이 νŠΉμ • κΆŒν•œμ„ ν•„μš”λ‘œ ν•  경우, ν•΄λ‹Ή κΆŒν•œμ΄ ν—ˆμš©λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜κ³ , ν•„μš” μ‹œ μ‚¬μš©μžμ—κ²Œ κΆŒν•œ μš”μ²­μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.


νƒ€μž… μ •μ˜β€‹

PermissionType​

nachocode SDKμ—μ„œ μ§€μ›ν•˜λŠ” λ””λ°”μ΄μŠ€μ˜ μ•± κΆŒν•œ μœ ν˜•μž…λ‹ˆλ‹€.

κ°’μ„€λͺ…
camera카메라 μ‚¬μš© κΆŒν•œ
locationμœ„μΉ˜ 정보 μ ‘κ·Ό κΆŒν•œ
microphone마이크 μ‚¬μš© κΆŒν•œ
pushν‘Έμ‹œ μ•Œλ¦Ό κΆŒν•œ

λ©”μ„œλ“œ λͺ©λ‘β€‹

λ©”μ„œλ“œμ„€λͺ…μΆ”κ°€λœ 버전
checkPermission(option, callback)νŠΉμ • κΆŒν•œμ΄ ν—ˆμš©λ˜μ—ˆλŠ”μ§€ ν™•μΈν•˜κ³ , ν•„μš” μ‹œ κΆŒν•œ μš”μ²­μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.ver.1.2.0

λ©”μ„œλ“œ 상세​

checkPermission(option: { type: PermissionType, ask?: boolean }, callback?: (granted: boolean) => any): void​

  • since ver.1.2.0

μ„€λͺ… (checkPermission)​

μ§€μ •λœ κΆŒν•œ(type)이 이미 ν—ˆμš©λ˜μ—ˆλŠ”μ§€ μ—¬λΆ€λ₯Ό ν™•μΈν•©λ‹ˆλ‹€.
ask μ˜΅μ…˜μ΄ true일 경우, μ‚¬μš©μžκ°€ κΆŒν•œμ„ ν—ˆμš©ν•˜μ§€ μ•Šμ•˜λ‹€λ©΄ κΆŒν•œ μš”μ²­ νŒμ—…μ„ ν‘œμ‹œν•©λ‹ˆλ‹€. 콜백 ν•¨μˆ˜μ˜ 맀개 λ³€μˆ˜λ‘œ ν—ˆμš© μ—¬λΆ€λ₯Ό μ „λ‹¬ν•©λ‹ˆλ‹€.

λ§€κ°œλ³€μˆ˜ (checkPermission)​

μ΄λ¦„νƒ€μž…ν•„μˆ˜ μ—¬λΆ€μ„€λͺ…
option{ type: PermissionType, ask?: boolean }βœ…ν™•μΈν•  κΆŒν•œ μœ ν˜• 및 κΆŒν•œ μš”μ²­ μ—¬λΆ€ (ask) 포함 객체
callback(granted: boolean) => any (optional)βŒκΆŒν•œμ΄ ν—ˆμš©λ˜μ—ˆλŠ”μ§€ μ—¬λΆ€λ₯Ό μ „λ‹¬λ°›λŠ” 콜백 ν•¨μˆ˜
  • type: 확인할 κΆŒν•œ μœ ν˜• (camera, location, microphone, push)
  • ask: true인 경우, κΆŒν•œμ΄ ν—ˆμš©λ˜μ§€ μ•Šμ•˜μ„ λ•Œ μš”μ²­ νŒμ—…μ„ ν‘œμ‹œ (default: false)

λ°˜ν™˜ κ°’ (checkPermission)​

ν•΄λ‹Ή λ©”μ„œλ“œλŠ” λ°˜ν™˜ 값을 가지지 μ•ŠμœΌλ©°, κ²°κ³ΌλŠ” callback을 톡해 λΉ„λ™κΈ°μ μœΌλ‘œ μ œκ³΅λ©λ‹ˆλ‹€.
콜백 ν•¨μˆ˜λŠ” κΆŒν•œμ΄ ν—ˆμš©λ˜μ—ˆμ„ 경우 true, κ±°λΆ€λ˜μ—ˆμ„ 경우 false 값을 μ „λ‹¬λ°›μŠ΅λ‹ˆλ‹€.

μ‚¬μš© 예제 (checkPermission)​

// ex. ν‘Έμ‹œ μ•Œλ¦Ό κΆŒν•œ ν—ˆμš© μ—¬λΆ€λ₯Ό ν™•μΈν•©λ‹ˆλ‹€.
// κΆŒν•œμ΄ ν—ˆμš©λ˜μ§€ μ•Šμ€ 경우, μžλ™μœΌλ‘œ OS νŒμ—…μ„ 톡해 κΆŒν•œμ„ μš”μ²­ν•©λ‹ˆλ‹€.
Nachocode.permission.checkPermission({ type: 'push', ask: true }, granted => {
// μ•± μœ μ €μ˜ κΆŒν•œ ν—ˆμš© μ—¬λΆ€κ°€ 맀개 λ³€μˆ˜ granted에 전달 λ©λ‹ˆλ‹€.
if (granted) {
alert('ν‘Έμ‹œ κΆŒν•œ ν—ˆμš©λ¨.');
} else {
alert('ν‘Έμ‹œ κΆŒν•œ 거뢀됨.');
}
});

주의 사항​

  1. ask μ˜΅μ…˜μ΄ false일 경우, μ‚¬μš©μžκ°€ κΆŒν•œμ„ κ±°λΆ€ν–ˆλ”λΌλ„ νŒμ—…μ„ λ„μš°μ§€ μ•Šκ³  ν˜„μž¬ κΆŒν•œ μƒνƒœλ§Œ λ°˜ν™˜ν•©λ‹ˆλ‹€.
  2. ask μ˜΅μ…˜μ΄ true일 경우, μ‚¬μš©μžκ°€ 이전에 "κΆŒν•œμ„ μš”μ²­ν•˜μ§€ μ•ŠμŒ"을 μ„ νƒν•œ 경우 OS νŒμ—…μœΌλ‘œ λ‹€μ‹œ μš”μ²­ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
  3. nachocode μ•±μ—μ„œλŠ” OS νŒμ—…μœΌλ‘œ λ‹€μ‹œ μš”μ²­ν•  수 없을 λ•Œ, 기본적으둜 κΆŒν•œ μ„€μ • νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•˜λ„λ‘ κ΅¬ν˜„μ΄ λ˜μ–΄μžˆμŠ΅λ‹ˆλ‹€.
  4. νŠΉμ • OS λ²„μ „μ—μ„œλŠ” κΆŒν•œ μš”μ²­μ΄ κ±°λΆ€λ˜μ—ˆμ„ λ•Œ, μ•± μœ μ €κ°€ μ„€μ •μ—μ„œ 직접 λ³€κ²½ν•΄μ•Όλ§Œ κΆŒν•œμ„ ν™œμ„±ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.