Извлечение данных при получении push-уведомления Swift 4.2 - PullRequest
0 голосов
/ 11 января 2019

Поэтому, когда приложение не работает или работает в фоновом режиме, я хочу получить полученное Сообщение (push) и сохранить его в локальном хранилище данных, чтобы, когда пользователь открывает приложение, он мог видеть сообщения вместо этого

Я пробовал это, но его не называют

  func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
        //fetch Data and save in local datastore here.
    }

1 Ответ

0 голосов
/ 11 января 2019

Вы должны использовать Тихие уведомления :

Беззвучные уведомления не предназначены для того, чтобы не допустить бодрствования вашего приложения в фоновом режиме после операций быстрого обновления, а также для высокоприоритетных обновлений. APN рассматривают фоновые уведомления об обновлениях как низкоприоритетные и могут полностью ограничивать их доставку, если общее количество становится чрезмерным. Фактические ограничения являются динамическими и могут изменяться в зависимости от условий, но старайтесь не отправлять более нескольких уведомлений в час.

Полезная нагрузка Silent Notification должна быть такой:

{
    "aps" = {
        "content-available" : 1,
        "sound" : ""
    };
    // You can add custom key-value pair here...
}

Когда приходит тихое уведомление, iOS запускает ваше приложение в фон, чтобы вы могли получить новые данные с вашего сервера или сделать обработка фоновой информации.

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

Вы можете перейти по этой ссылке: https://medium.com/@m.imadali10/ios-silent-push-notifications-84009d57794c

Добавьте следующие ключи в файл plist для безопасности транспорта:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>example.com</key>
        <dict>
            <key>NSExceptionAllowsInsecureHTTPLoads</key>
            <true/>
            <key>NSIncludesSubdomains</key>
            <true/>
        </dict>
    </dict>
</dict>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...