问题描述
我在几个地方见过
如果您的应用程序在前台或后台运行,则系统通过调用application(_:didReceiveRemoteNotification:fetchCompletionHandler :)通知您的应用程序。当用户通过点击推送通知打开应用程序时,iOS可能会再次调用此方法,因此您可以更新UI并显示相关信息。
背景:通知到达时。 +如果用户点击 通知,在应用进入前台之前。
如果我设置"content-available": 1
并向通知中添加一些数据有效载荷,则当我的应用程序在后台运行时,方法application(_:didReceiveRemoteNotification:fetchCompletionHandler)
将被调用两次(除非我为UNUserNotificationCenter
设置了委托)然后当用户点击通知时。
不幸的是,我没有注意到这种行为,用户点击通知后,上述方法仅被调用一次。
我要发送的通知类似于:
{
"aps": {
"alert": "Test","sound": "default","content-available": 1
},"test": "abc"
}
iOS 13/14中的某些更改(Ray Wenderlich教程似乎是最新的)还是我丢失了某些内容?
编辑
有趣的是,多次重新安装该应用程序后,它开始工作。我设置了UNNotificationCenterdelegate,它的工作方式如下:
- 应用程序处于后台,服务器使用
content-available: 1
发送通知。 - 系统显示警报,并且调用
application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
以便提取新数据。 - 用户点击警报,就会调用
userNotificationCenter(_:didReceive:withCompletionHandler:)
,因此我可以导航到特定视图。
这是处理带有数据有效负载的推送通知的正确方法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)