Что такое Silent Push Notification? Когда устройство получит его?

Я хочу очистить локальное уведомление в панели уведомлений. Чтобы это было реализовано, я думаю использовать тихое push-уведомление. Итак, я хочу подтвердить, когда устройство получит его и что я могу с ним сделать?

2 ответа

Решение

Они могут использоваться для информирования приложения о новом контенте без уведомления пользователя. Вместо отображения уведомления об уведомлении приложение будет пробуждено в фоновом режиме (iOS не запускает ваше приложение автоматически, если пользователь принудительно завершил его), и будет вызвано приложение: didReceiveRemoteNotification: fetchCompletionHandler:. Затем у вас есть возможность прозрачно обработать любую информацию для пользователя:

  • Загрузите некоторый контент
  • Синхронизировать некоторые элементы,
  • Сообщите пользователю непосредственно в приложении, когда он откроет его обратно

Обратите внимание, что ваше время ограничено 30 с.

Чтобы настроить тихие уведомления

Для поддержки тихих удаленных уведомлений добавьте значение удаленного уведомления в массив UIBackgroundModes в вашем файле Info.plist. Чтобы узнать больше об этом массиве, см. UIBackgroundModes.

<key>UIBackgroundModes</key>
<array>
    <string>remote-notification</string>
</array>

Настройка молчаливого уведомления

Словарь aps также может содержать свойство content-available. Свойство content-available со значением 1 позволяет удаленному уведомлению действовать как автоматическое уведомление. Когда приходит тихое уведомление, iOS запускает ваше приложение в фоновом режиме, чтобы вы могли получать новые данные с вашего сервера или выполнять обработку фоновой информации. Пользователям не сообщают о новой или измененной информации, полученной в результате тихого уведомления, но они могут узнать об этом при следующем открытии приложения.

Для уведомления в режиме без вывода сообщений позаботьтесь о том, чтобы в словаре aps не было никакой полезной нагрузки для оповещения, звука или значка. Если вы не будете следовать этому руководству, неправильно настроенное уведомление может быть задушено и не доставлено приложению в фоновом режиме, а вместо того, чтобы молчать, отображается для пользователя

Когда вы отправляете молчаливое push-уведомление и если приложение приостановлено, то система просыпается или запускает ваше приложение и переводит его в фоновое рабочее состояние перед вызовом метода, но если приложение вручную уничтожается пользователем, оно не активируется.

Применение:didReceiveRemoteNotification:fetchCompletionHandler:

Этот метод вызывается, когда вы отправляете молчаливое push-уведомление, и ваше приложение имеет до 30 секунд времени настенного времени для выполнения загрузки или любого другого вида операции и вызова указанного блока обработчика завершения. Если обработчик не вызывается вовремя, ваше приложение будет приостановлено.

Если вы хотите отправить молчаливое push-уведомление, тогда полезная нагрузка вашего уведомления должна быть такой:

{
    "aps" = {
        "content-available" : 1,
        "sound" : ""
    };
    // You can add custom key-value pair here...
}
Другие вопросы по тегам