替换 WhatsApp 等推送/本地通知

Posted

技术标签:

【中文标题】替换 WhatsApp 等推送/本地通知【英文标题】:Replace push/local notification like WhatsApp 【发布时间】:2015-11-02 10:35:12 【问题描述】:

我想实现像 WhatsApp 这样的功能,当有人打电话给他们时,用户会收到推送通知,通知说 “来自 X 的电话”,如果您在 30 秒内没有接到电话或点击通知。收到另一个推送通知,上面写着 “whatsapp 的未接来电..”。但是最后一个通知从堆栈中删除或替换或不再可见。我们如何实现它?

【问题讨论】:

【参考方案1】:

您需要为此使用 UILocalNotification。在我开发的信使应用程序中,我们使用以下工作流程来实现完全相同的功能:

当 User1(U1) 调用 User2(U2) 时,服务器向 U1 发送一个空的推送通知。这样通知中心就不会显示任何内容了。 U1 启动套接字连接(即使应用在后台也可用,但如果被杀死则不可用) U1 注册套接字事件,收集有关调用者的信息并用 30 秒计时器炫耀UILocalNotification 30 秒后,U1 通过套接字发出消息以通知服务器它错过了一个呼叫,U2 接收到该事件并显示相应的消息 U1 removes UILocalNotification 来自通知中心

【讨论】:

如何从通知中心删除通知?他们有任何 API 吗?您引用的链接取消了计划的通知,而不是通知中心已经存在的通知。 使用API​​取消,它会工作。 Docs 说明如下:“如果通知当前正在显示警报,则调用此方法还会以编程方式关闭通知。”。 @Taseen,见this question,它描述了如何实现它......也看看PushKit,它旨在用于VoIP推送通知......

以上是关于替换 WhatsApp 等推送/本地通知的主要内容,如果未能解决你的问题,请参考以下文章

推送通知参数本地化

将传入的whatsapp通知存储到本地数据库

Swift 本地推送通知操作视图

iOS(本地通知与远程通知)

本地通知和推送通知

在 Whatsapp 或 Viber 上接收推送通知即时消息