在 iPhone 上处理时如何使 iPad 上的 iOS 推送通知无效?

Posted

技术标签:

【中文标题】在 iPhone 上处理时如何使 iPad 上的 iOS 推送通知无效?【英文标题】:How to invalidate an iOS push notification on iPad when handled on iPhone? 【发布时间】:2014-06-02 23:37:15 【问题描述】:

假设用户在其 iPhone 和 iPad 上有一个消息应用程序。他们从服务器收到一条新消息,因此推送通知会发送到他们的两个设备。现在用户拿起他们的 iPhone 并阅读通知中心等待的消息。我现在如何从他们的 iPad 上的通知中心删除消息(以及应用程序徽章编号),因为它已经被阅读了?

【问题讨论】:

您对这个问题有任何更新吗?当应用程序未运行时,我想删除通知表单通知中心。例如,我知道 WhatsApp 就是这样做的。但我只能在应用程序处于后台时才能实现。 【参考方案1】:

当用户在 iPhone 上阅读消息时(大概是在点击通知或应用程序的启动图标之后),您可以在您的服务器上执行一些 API 调用来通知它用户阅读了该消息。

如果您在您的服务器中为每个用户维护属于该用户的所有设备的设备令牌列表,您可以将推送通知发送到徽章计数为 0 的所有设备。这将清除 iPad 上的徽章编号(以及属于该用户的任何其他设备)。不过,我不确定它是否会从 iPad 的通知中心删除消息。

【讨论】:

从粗略的测试来看,这似乎确实有效。如果您使用"badge":0 发送后续推送通知,并省略"alert""sound" 字段,则通知将从锁定屏幕和应用程序图标中清除!【参考方案2】:

ios7 开始,我们没有任何 API 来控制通知中心。因此无法清除通知。

【讨论】:

以上是关于在 iPhone 上处理时如何使 iPad 上的 iOS 推送通知无效?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 FlashPro CC HTML5 Canvas 导出与 iPad/iPhone 上的声音一起使用

如何在 iOS13 上的 iPad 上呈现 iPhone 风格的 actionSheet?

Ipad上的Iphone分辨率

iPhone SDK:如何使3hg应用程序iPad兼容?

禁用iPhone 4S /新iPad键盘上的听写按钮

iPhone 4 和 iPad 上的约束不同