Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- debounce
- CS
- promise.all
- Hash-table
- animation
- React-Native업데이트
- async
- RN새로운아키텍쳐
- react
- no-permission-handler-detected
- react native
- Throttle
- Swift
- Promise
- javascript
- RN아키텍쳐
- react-native
- react animation
- react-native-permissions
- 비동기
- motion.div
- private-access-to-photos
- axios
- named type
- await
- react-native-image-picker
- RN업데이트
- hydration mismatch
- ios
- rn
Archives
- Today
- Total
하루살이 개발일지
[React-Native] 사진에 비공개 접근 (private access to photos) 해결 방법 / react-native-permissions 본문
프로젝트/Rizzup
[React-Native] 사진에 비공개 접근 (private access to photos) 해결 방법 / react-native-permissions
harusari 2024. 3. 22. 01:30
react-native-image-picker를 통해 유저가 앨범에서 사진을 골라 업로드하는 기능을 개발하던 도중, 앨범에서 사진을 선택하려고 하면 '비공개 접근' 밖에 불가능했다.
앱 설정에 들어가서 바꾸려고 해도 권한 변경이 다음과 같이 불가능했다.
(원래는 안함, 제한된 접근, 전체 접근 항목이 나와야 함)
react-native-image-picker 자체적으로 사진 앨범 접근 권한을 받아올 수는 없는건가 싶어서 react-native-permissions로 권한을 부여해 보았다.
useEffect(() => {
const checkPermission = async () => {
const res = await checkMultiple([PERMISSIONS.IOS.PHOTO_LIBRARY]);
if (res['ios.permission.PHOTO_LIBRARY'] === 'denied') {
const request = await requestMultiple([PERMISSIONS.IOS.PHOTO_LIBRARY]);
}
};
checkPermission();
}, []);
그랬더니 기대하던 방식대로 앨범 접근에 대한 권한을 부여받을 수 있게 되었다!
사진첩에 대한 permission의 상태를 찍어봐도 'granted'라고 잘 나온다.
참고로 permission 상태는 granted, denied, blocked, unavailable 네 가지가 있다.
1. Granted (부여됨): 사용자가 요청된 권한을 앱에 부여했음을 의미
2. Denied (거부됨): 사용자가 요청된 권한을 앱에 거부했음을 의미. 이 상태에서 앱은 해당 기능이나 데이터에 접근할 수 없으며, 사용자가 설정을 변경하지 않는 한 이 상태는 유지됨.
3. Blocked (차단됨): 일반적으로 'blocked' 상태는 사용자가 권한 요청을 "다시 묻지 않음"으로 거부했을 때 발생. 이 상태는 앱이 해당 권한에 대한 접근을 요청할 수 없음을 의미하며, 사용자가 직접 시스템 설정에서 앱 권한을 변경해야 함
4. Unavailable (사용 불가): 이 상태는 요청된 권한이 사용자의 기기에서 지원되지 않거나 사용할 수 없음을 의미
처음에는 permission 상태를 콘솔 찍어보면 unavailable이 떴는데,
하여튼 결론은 비공개 접근이라는 것 자체가 iOS에서 새로 추가된 기능같은데, 유저에게 권한 여부를 물어보지 않고 안전하게 앨범에 접근하는 방법 정도인 것 같다.
하지만 나는 이를 원하지 않고 권한을 부여받고 싶었기 때문에.. react-native-permissions를 통해 권한을 부여받음.
'프로젝트 > Rizzup' 카테고리의 다른 글
[회고] TextInput 입력을 두 줄로 제한하기 - 인스타그램 설문 기능 (0) | 2024.03.28 |
---|---|
[React-Native] react-native-permissions 라이브러리 No permission handler detected 에러 해결 방법 (iOS) (0) | 2024.03.22 |