Время выполнения фоновой выборки с 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
}