Среда:
Версии iOS: 16 и 17
Протестированные устройства: iPhone 14 Pro (iOS 17.4), iPhone 13 Pro (iOS 16.5.1 и 17.4)
Настройки Xcode и проекта: фоновые режимы включены для удаленных уведомлений
Ожидаемое поведение:
Тихое уведомление должно активировать ожидаемую функцию DidReceiveRemoteNotification для выполнения определенных действий, включая воспроизведение звука.
Ожидаемое поведение:
вызывается метод DidReceiveRemoteNotification, чтобы я мог обработать уведомление.
Фактическое поведение:
На устройствах в режиме разработчика (например, iPhone 14 Pro с iOS 17.4 и iPhone 13 Pro с iOS 16.5.1 после включения режима разработчика) метод DidReceiveRemoteNotification функция срабатывает правильно. Однако на стандартном iPhone 13 (iOS 17.4), не установленном в режиме разработчика, DidReceiveRemoteNotification не вызывается. Вместо этого иногда вызывается applicationDidBecomeActive.
Фрагмент кода:
Код: Выделить всё
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) async -> UIBackgroundFetchResult {
Logger.log(function: "didReceiveRemoteNotification", message:"application: \(application.debugDescription), userInfo: \(userInfo.debugDescription)")
let notification = NotificationParser.from(userInfo: userInfo)
guard notification.type.isEmpty == false else {
Logger.log(function:"Notification Handler", message: "Notification type is empty")
return .failed
}
NotificationService.handleNotification(userInfo: userInfo)
return .newData
}
Код: Выделить всё
{
"aps": {
"content-available": 1
},
"id": "test",
"action": "actionA",
"body": "Sample body text to be used internally",
"type": "typeA",
"title": "Notification Title Example"
}
[*]Убедитесь, что фоновое обновление приложений и уведомления включены на всех устройствах.[*]Проверка правильности настроек проекта для фоновых режимов.
[*]Попробуйте использовать DidReceiveRemoteNotification с параметром завершения или с асинхронным возвратом
< /ul>
Кто-нибудь еще сталкивался с таким поведением? Есть какие-нибудь предложения о том, что может быть причиной этой проблемы или как ее исправить?
Подробнее здесь: https://stackoverflow.com/questions/784 ... in-develop