如何从静默通知中接收APNS有效负载数据



我正在XCode 12.2中测试通知。测试警报样式的通知非常容易。你只需在模拟器中将它们拖到你的应用程序上,有效载荷就会显示在:中

func应用程序(_application:UIApplication,didReceiveRemoteNotification userInfo:[AnyHashable:Any],fetchCompletionHandler completionHandler:@sescape(UIBackgroundFetchResult(->无效({通知Dispatcher.process(userInfo(completionHandler(.newData(}

现在,当测试静音通知时,我可以在设置"静音"后启动静音通知;背景提取";在背景模式下。然后我进入:

func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
debugPrint("hello silence ")
}

如果我想让应用程序做一些与负载中的数据无关的事情,这很好。如何查看实际的弹片有效载荷数据?

我正在尝试访问我正在使用的这个有效负载示例:

{
"aps": {
"category": "tasks",
"content-available": 1,
"thread-id": "tasks"
},
"resource": {
"resourceType": null,
"additionalProperties": {
"taskIds": [
"xxx"
],
"classification": "xxx",
"status": "xxx"
}
}
}

如果设置了content-available标志,则模拟静默推送通知当前不起作用,因为它调用了错误的委托方法。

如果你尝试使用一个实际的设备并发送一个真正的推送通知,它应该调用application(:didReceiveRemoteNotification:fetchCompletionHandler:)委托,你就可以访问有效负载。论坛上也有一些关于这方面的帖子,比如https://developer.apple.com/forums/thread/652649.

最新更新