我已经集成了UNNotificationServiceExtension,它允许我在向用户呈现推送通知之前更改标题。
我已经遵循了apple developer documentation中提到的指导方针,也浏览了SO上的相关问题,但似乎没有任何效果。
按照指示,我已经遵循了这些指导原则
- 包含“可变内容”:1在您的推送通知有效负载中
- 扩展的部署目标应正确设置(应与主应用目标匹配)
- 有效负载必须包括带有标题、副标题或正文信息的警报字典
- 推送通知的有效负载中的“aps”字典必须包括具有字符串值的键“category”。
问题
我的通知服务扩展有时不会在收到推送通知时触发,主要是在我删除并安装新的应用程序副本时。在这种情况下也不会触发断点。系统似乎忘记触发服务扩展。我选择了正确的扩展方案,而不是主要的应用程序目标。我的通知标题没有按照我的逻辑更新。
注意:此操作发生在iOS 14上。在iOS 12上,它工作得很好。这是iOSbug吗?
这已经在这些线程中讨论过了。
https://developer.apple.com/forums/thread/67202https://developer.apple.com/forums/thread/125987
如果你能帮忙的话,我将不胜感激。谢了,谢了
示例代码
我做了一个示例项目来演示这个问题。您可以从Github Repo下载
3条答案
按热度按时间pdtvr36n1#
您必须修改UNNotificationRequest内容部分。下面是我用于通知扩展的代码片段。
字符串
我使用的JSON payload
型
使用您的代码库,我得到的输出为
如果要调试NotificationService扩展,则必须从下拉列表中选择NotificationServiceExtension方案,然后断点才能正常工作
tf7tbtn22#
更新
我已经为这个问题提交了Techinical support Incident。我对通知服务扩展进行了广泛的研发。根据苹果文档在一个香草项目中实现了它。我们的配置和一切似乎都是正确的。所以我就这个问题请求苹果的技术支持,并得到了这个答复。
我们已确定您看到此问题是由于iOS中的错误。请使用Feedback Assistant(https://feedbackassistant.apple.com)提交关于此问题的完整错误报告。有关反馈助手的更多信息,请访问https://developer.apple.com/bug-reporting/。
请在bug报告中再次包含您提供给我的所有信息(您可以直接将日志附加到bug报告中)。请确保按照https://developer.apple.com/bug-reporting/profiles-and-logs/上的说明和APNS(Apple推送通知服务)的说明在设备上安装日志记录配置文件,并确保在重现问题之前已安装日志记录配置文件。
重要:在反馈助手中,当在macOS、iOS、watchOS或tvOS上提交有关API/SDK的错误报告时,请选择相应的API/SDK区域(在“其他不在此列表中的内容”之后)。
所以,我将提交一份bug报告给苹果。我会更新这个答案一旦得到了错误报告的回复。
a0zr77ik3#
唯一对我有效的解决方案(2023年7月21日)是:
1.取消选中“安装时复制”。
1.从“框架”中删除通知服务扩展,然后重新添加(重新启动iPhone)。