Может ли UNUserNotificationCenter.current(). RequestAuthorization() вызываться более одного раза?
Может ли UNUserNotificationCenter.current(). RequestAuthorization() вызываться более одного раза?
- Могу ли я вызывать при каждом запуске приложения?
- Могу ли я вызвать его снова после того, как пользователь предоставил разрешения на уведомления?
- Если нет, то почему нет?
1 ответ
Ответ: да и нет.
Вы можете вызывать его более одного раза, но вы не можете вызывать его более одного раза одновременно, иначе все, кроме одного из одновременных запросов, не будут выполнены без ошибок (т.е.
granted = false
ноerror = nil
). Параллельные запросы могут возникать, если в логике вашего приложения есть несколько событий, которые могут инициировать запрос авторизации, в отличие от простого счастливого пути сделать это один раз внутри appDidFinishLaunching.Хуже того, одновременные запросы также приводят котключению разрешений на уведомления, даже если пользователь уже авторизовал их во время предыдущего запуска приложения. Отчет об ошибке для такого сценария будет выглядеть так: "Разрешения APN отключают себя". Что, как и все ошибки, поначалу кажется невозможным.