#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
зависит от того, предоставило ли текущее устройство, на котором используется приложение, разрешения вашему приложению или нет.