PHPhotoLibraryのrequestAuthorizationがダイアログを開くかどうか

     
⌛️ < 1 min.

PHPhotoLibrary.requestAuthorizationでダイアログを開くかどうかの判断について調べてみました。

アプリ側からの指定不可

アプリ側からは、指定できません。

requestAuthorizationでダイアログが開かれるケース

過去に一度も、”Deny”/”Allow”のいずれも選択していないとiOSが表示する。

Simulatorでの確認ですが、このダイアログは、Modalで表示され、回答しない限り、閉じません。ホームボタンでも閉じることができないダイアログでした。

requestAuthorizationでダイアログが開かれないケース

つまり、過去に一度でもユーザーが選択していると開かれない。
ちなみに、過去に一度でも選択したかどうかは、Settingアプリでアプリがリストに追加されているかで判断できます。プログラム中で判断する方法があるかは、不明です。

ちなみに、ユーザーは、アプリからだけではなく、Settingアプリからいつでも設定を変更できます。アプリからアプリの意思で設定変更することはできないので、変更されてしまった場合は、ユーザーに再度依頼するしかありません。
なお、アプリからSettingアプリを開くこともできます。(設定変更することはできないので、ユーザーをアシストすることしかできません)

DispatchQueue.main.async {
   UIApplication.shared.open(URL(string: UIApplication.openSettingsURLString)!)
}

UIをいじるので、mainスレッドで実行させる必要があります。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です