Время выполнения фоновой выборки с iOS 10 UserNotifications без взаимодействия с пользователем

В API push-уведомлений до iOS 10 я мог легко запустить фоновое задание, вызванное полученным Push-уведомлением. Только что получил - пользователь не должен был взаимодействовать с ним вообще. Теперь, кажется, для того, чтобы мои новые фоновые задания выполнялись с этой новой платформой, пользователь должен каким-то образом взаимодействовать с уведомлением. Есть ли способ с этой новой структурой просто запустить фоновое задание, когда определенное нажатие только что получено клиентским устройством, но не взаимодействует с пользователем? Могу ли я передать метод в информационном словаре пользователя?

1 ответ

Решение

Я нашел решение, которое не работает напрямую с UserNotifications Framework, но все же позволяет выполнять фоновые задания в iOS 10 с помощью push-уведомлений.

Я обнаружил, что с помощью UIApplicationDelegate на самом деле вы можете выполнять фоновые задания с помощью push-уведомлений через ту же функцию, которая использовалась в предыдущих версиях iOS:

- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo  fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))handler{

    //execute the background job here

}

Все, что вам нужно сделать, это добавить content-available Перед отправкой установите флажок в пуш и установите его равным 1.

Как и для JS:

data: {
         alert: "Some alert",
         type: someType,
         "content-available": 1,
         id: someId
      }
Другие вопросы по тегам