隐藏通过通知服务扩展收到的通知



我正在使用通知服务扩展目标,以便能够在推送通知显示之前对其进行修改。 它运行良好,但有些通知在处理后我不向用户显示。

我试图将最佳尝试内容标题和正文设置为",但它返回完整的通知。

我也尝试将 aps["内容可用"] 设置为 1,将正文设置为 ",但我得到了相同的效果。

情况

我实际上尝试实现与您相同的目标,即使用本地通知服务扩展管理将哪种通知传递到特定设备。但是,我必须弄清楚这是设计使然...

  • 。您无法通过离散 API 取消通知。
  • 。如果清空通知的内容,则会传递通知,就像从未调用过通知服务扩展一样。

这是因为Apple不希望您向用户的手机发送通知垃圾邮件(即使在后台处理甚至没有发送时),因为这可能会耗尽电池寿命,例如。

解决方案

对于现在要做什么,您有四种可能的选择:

  • 使用静默推送。然后触发本地通知。注意:静默推送并不总是可靠的。
  • 使用网络语音推送。这就是WhatsApp使用的,例如,据我所知,它将允许取消通知之类的事情。然而,苹果在应用程序审查方面很严格:只有VoIP应用程序被允许使用VoIP推送(我猜这就是WhatsApp引入语音呼叫的原因,因为他们需要VoIP推送在后台解密他们的消息,而通知服务扩展在iOS 9下还不是一个选项)。
  • 通过仅向现在应该接收这些通知的用户发送通知,在服务器端处理任何自定义取消逻辑。
  • 将通知文本
  • 操作为不为空的内容,但仍会隐藏原始通知文本。例如,如果您发送推送,说明您的应用程序的专业版目前以折扣价提供,这可能会很有用:对于现有的专业用户,您可以编辑文本以阅读"感谢您成为专业人士"。

最新更新