iOS Permission handler permanentlyDenied 상태에서 동작 안할때 처리 방법 (How to request flutter permssion handler iOS permission not working when permanentlyDenied )공부방/Flutter2023. 12. 15. 13:20
Table of Contents
iOS 에서 앨범을 예를들어
사진을 가져오고 싶을때 permission hander 를 이용해 아래처럼 요청을 할수 있다.
Permission.photos.request().then((st) async {
if (!context.mounted) return;
if (st == PermissionStatus.permanentlyDenied) {
await AppSettings.openAppSettings();
} else {
sendMedia(context);
}
});
그런데 사용자가 사진 선택 권한요청 다이얼로그에서
사진 접근을 거부하면 그때부터 설정화면으로 이동하지만
이상하게 설정화면에는 사진 권한을 수정할수 있는 메뉴가 나오지 않는다.
이럴때는 pod file을 열어서
아래의 코드를 추가해준다.
예를들어 사진 요청이 필요하면,
아래의 'PERMISSION_PHOTOS=1', 을 #을 지워 주석을 해제 해준다.
그럼 사용자가 권한을 거부 했을경우 설정 화면으로 이동시
해당 권한을 변경이 가능하도록 메뉴가 나타난다.
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
'$(inherited)',
## dart: PermissionGroup.calendar
# 'PERMISSION_EVENTS=1',
## dart: PermissionGroup.reminders
# 'PERMISSION_REMINDERS=1',
## dart: PermissionGroup.contacts
# 'PERMISSION_CONTACTS=1',
## dart: PermissionGroup.camera
# 'PERMISSION_CAMERA=1',
## dart: PermissionGroup.microphone
# 'PERMISSION_MICROPHONE=1',
## dart: PermissionGroup.speech
# 'PERMISSION_SPEECH_RECOGNIZER=1',
## dart: PermissionGroup.photos
'PERMISSION_PHOTOS=1',
## dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
# 'PERMISSION_LOCATION=1',
## dart: PermissionGroup.notification
'PERMISSION_NOTIFICATIONS=1',
## dart: PermissionGroup.mediaLibrary
# 'PERMISSION_MEDIA_LIBRARY=1',
## dart: PermissionGroup.sensors
# 'PERMISSION_SENSORS=1',
## dart: PermissionGroup.bluetooth
# 'PERMISSION_BLUETOOTH=1',
## dart: PermissionGroup.appTrackingTransparency
# 'PERMISSION_APP_TRACKING_TRANSPARENCY=1',
## dart: PermissionGroup.criticalAlerts
# 'PERMISSION_CRITICAL_ALERTS=1'
]
end
end
end
반응형
'공부방 > Flutter' 카테고리의 다른 글
@soycrab :: 꿀맛코딩
행복한 코딩을 위하여!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!