Что такое 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...
}