UNUserNotificationCenter.current().requestAuthorization() を複数回呼び出すことはできますか?
- アプリケーションを起動するたびに呼び出すことはできますか?
- ユーザーが通知権限を付与した後で再度呼び出すことはできますか?
- そうでない場合、なぜですか?
UNUserNotificationCenter.current().requestAuthorization() を複数回呼び出すことはできますか?
答え: はい、いいえ。
これを複数回呼び出すことはできますが、同時に複数回呼び出すことはできません。そうしないと、同時要求の 1 つを除くすべてがエラーなしで失敗します (つまりgranted = false
、 but error = nil
)。appDidFinishLaunching 内で承認要求を一度実行するという単純なハッピー パスとは対照的に、アプリ ロジックに承認要求をトリガーできる複数のイベントがある場合、同時要求が発生する可能性があります。
さらに悪いことに、ユーザーが以前のアプリの実行中に既に承認していた場合でも、同時要求によって通知のアクセス許可がオフになります。このようなシナリオのバグ レポートは次のようになります。これは、すべてのバグと同様に、最初は不可能に思えます。