iOS 更新推送内容扩展

Posted

技术标签:

【中文标题】iOS 更新推送内容扩展【英文标题】:iOS update push in content extension 【发布时间】:2017-03-15 14:06:29 【问题描述】:

iMessage 在屏幕上更新富推送。您可以看到用户正在输入的内容,并且消息将添加到您的对话中。

所以问题是:当我已经在查看打开的富推送时,我如何才能捕捉到新的推送通知? UNNotificationContentExtension 中是否有任何事件可以捕获新事件并更新视图?我唯一知道的是:

- (void)didReceiveNotification:(UNNotification *)notification

但只有在你第一次打开推送时才会触发

编辑:

在UNNotificationContentExtension协议中发现:

// This will be called to send the notification to be displayed by
// the extension. If the extension is being displayed and more related
// notifications arrive (eg. more messages for the same conversation)
// the same method will be called for each new notification.
- (void)didReceiveNotification:(UNNotification *)notification;

所以它应该可以工作,但我无论如何都无法捕捉到这个事件。也许我需要以某种方式使新通知与当前显示“相关”?

【问题讨论】:

【参考方案1】:

发现问题出在哪里。

苹果文档:

显示通知时,系统可视化分组 具有相同线程标识符的通知一起。对于远程 通知,此属性的值设置为 aps 字典中的 thread-id 键。

在 aps 字典中添加键“thread-id”后,此函数现在可以正确接收事件

- (void)didReceiveNotification:(UNNotification *)notification;

【讨论】:

以上是关于iOS 更新推送内容扩展的主要内容,如果未能解决你的问题,请参考以下文章

具有可更新订阅的 iOS 内容块扩展

修改 UNNotificationService 扩展中推送通知有效负载中的“声音”属性

更新应用内内容 IOS

向多个客户端推送近乎实时的位置更新

[iOS]更新推送证书但没有certificateSigningRequest文件

ios13.6正式版发布,部分旧机型推送ios12.4.8,都有哪些更新