Нормальный Pu sh Разрешения на уведомления после того, как уже есть Silent Pu sh Уведомления - PullRequest
0 голосов
/ 25 марта 2020

У меня есть приложение, которое уже некоторое время получает тихий pu sh уведомления. Теперь у меня есть требование добавить обычные уведомления pu sh, которые будут отображаться в центре уведомлений пользователя и как баннер.

Изначально все, что я делал, это регистрировался для уведомлений pu sh без запроса авторизации. (поскольку для тихих уведомлений не требуется авторизация):

UIApplication.shared.registerForRemoteNotifications()

В настоящее время проблема заключается в том, что нет запроса на предоставление или отклонение разрешений на уведомления, когда я запрашиваю авторизацию следующим образом:

UNUserNotificationCenter.current().requestAuthorization(options: options) { granted, error in
    // Handle response
}

Я бы подумал, что, поскольку я никогда не звонил requestAuthorization раньше, было бы приглашение. Но похоже, что поскольку устройство в прошлом регистрировалось для (тихих) уведомлений, подсказок не будет.

Я прав в этом рассуждении? И единственный ли у меня теперь вариант представить свой модальный режим и дать пользователю возможность вручную включать уведомления в настройках?

1 Ответ

0 голосов
/ 25 марта 2020

Я проверил это в своем приложении и удалил вызов на

UNUserNotificationCenter.current().requestAuthorization(options: options) { granted, error in
    // Handle response
}

После этого (на fre sh установка) и только вызов registerForRemoteNotifications, я получил токен уведомления, не было приглашение и уведомление, а также значок не могут быть показаны.

Затем я восстановил запрос requestAuthorization, запустил приложение и запрос появился. Таким образом, это может указывать на то, что вы не правы, и вы должны видеть запрос после первого запроса requestAuthorization.

Я предполагаю, что вы уже когда-нибудь договорились о приглашении go. Проверьте в настройках телефона -> «YourApp» -> Уведомления. Если вы уже согласились - там будет информация.

Попробуйте удалить приложение и еще раз проверьте, отображается ли приглашение.

...