есть ли какой-нибудь способ изменить разрешение для push-уведомлений на ios во время выполнения?

#ios #ionic-framework #push-notification #firebase-cloud-messaging

# #iOS #ionic-framework #push-уведомление #firebase-облако-обмен сообщениями

Вопрос:

У меня есть приложение, созданное в ionic, которое использует push-уведомление firebase. Если у пользователя, устанавливающего приложение, спрашивают, разрешает ли он разрешение на отправку push-уведомлений, с этого момента firebase сохраняет статус разрешения до тех пор, пока пользователь не удалит приложение. Есть ли какой-нибудь способ изменить разрешение среды выполнения? пример использования: я устанавливаю приложение и не даю разрешения на push-уведомления, я использую его, я понимаю, что хочу получать уведомления, теперь как мне изменить разрешение?

Ответ №1:

Вы меняете его в «Настройки> Приложение> Уведомления».

Ответ №2:

После того, как пользователь отклонил разрешение на push-уведомления, его можно изменить, только открыв Settings > Your App > Notifications , что означает, что пользователю нужно будет сделать это вручную.

Но есть несколько плагинов Cordova, которые могут помочь вам в этом. Например, диагностический плагин имеет метод, который называется switchToSettings так:

Открывает страницу настроек для этого приложения.

На Android откроется страница «Информация о приложении» в приложении «Настройки».

На iOS откроется страница настроек приложения в приложении «Настройки».

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

 this.firebasePlugin.grantPermission().then((hasPermission) => {
  if(!hasPermission) {
    // Show some message to the user telling that 
    // your app will open the settings and then...
    this.diagnosticPlugin.switchToSettings();
  }
});
 

Комментарии:

1. ваш отличный ответ на вопрос «что может сделать приложение, если пользователю ранее было отказано в доступе. Но ОП задал вопрос: «как мне [пользователю] изменить разрешение?»

2. Это хороший момент :)… Но поскольку пользователь упомянул, что он создал приложение с помощью Ionic, я предположил, что ему интересно узнать, как разрешить пользователям из этого приложения изменять разрешения.

3. firebasePlugin.hasPermission считывается из настроек устройства или с сервера fcm?

4. @EmanueleGaleotti Я обновил ответ, чтобы использовать этот grantPermission метод вместо этого, но оба они работают аналогичным образом: результат true/false зависит от того, предоставило ли текущее устройство, на котором используется приложение, разрешения вашему приложению или нет.