【问题标题】:Notification service extension - hide previous notifications通知服务扩展 - 隐藏以前的通知
【发布时间】:2020-04-12 02:38:30
【问题描述】:

以仅以以下格式显示通知的消息应用程序为例:You have X new messages

当用户收到消息时,应用会显示通知:You have 1 new message

当它收到第二条消息时,将显示一条新通知:You have 2 new messages

理想情况下,在收到第二个通知后,第一个应该被取消/隐藏,因为用户只有 2 条新消息,而不是 1 + 2。

如果通知在本地使用UserNotifications 呈现,要解决此问题,您只需在为两个通知创建UNNotificationRequest 时使用相同的标识符。

在使用通知服务应用扩展时有没有办法达到同样的效果?

【问题讨论】:

    标签: ios apple-push-notifications unnotificationserviceextension


    【解决方案1】:

    这可以通过修改服务器端的通知来完成。您可以设置一个名为 apns-collapse-id 的标头。有关如何执行此操作的更多信息,请参阅 Apple 的 article

    所有具有相同标题的通知将被合并 - 即只显示最新的通知,之前的通知将消失。

    【讨论】:

    • 这很有趣。我有另一个用例,例如一个简单的呼叫应用程序(不使用 VoIP 推送通知)。假设有 2 个通知:通话时“邀请”,挂断时“离开”。如果用户 A 打电话给用户 B,然后用户 A 取消了一个呼叫,那么用户 B 应该得到一个推送邀请,然后离开 - 它应该消失。由于我们无法隐藏之前的推送,我们可以使用折叠 ID 将其替换为离开。这是这里唯一可能的解决方案吗?
    • @Rubycon 我相信是的。静默推送可以用于隐藏通知,但对于呼叫来说太不可靠了。如果您无法使用 VoIP 推送,那么最好发送一条新通知,用“未接来电”之类的消息替换旧通知。
    • 嗨@pepsy,我可以在收到通知时在通知服务扩展中设置apns-collapse-id,而不是在服务器上设置吗?
    • @TiếnNguyễnHữu 我不认为这是可能的
    猜你喜欢
    • 2017-05-13
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多