隐藏通过 NotificationService Extension 收到的通知
Hide notifications received through NotificationService Extension
我正在使用 NotificationService Extension 目标,以便能够在推送通知出现之前对其进行修改。
它运行良好,但有一些通知在处理后我不想呈现给用户。
我尝试将 bestAttemptContent 标题和 body 设置为“”,但它 return 是完整的通知。
我也试过将 aps["content-available"] 设置为 1,将 body 设置为 "",但我得到了相同的效果。
情况
我实际上试图实现与您相同的目标,即使用本地通知服务扩展管理将何种通知传送到特定设备。但是,我必须弄清楚这是设计使然...
- ...您无法通过离散 api.
取消通知
- ...如果您清空通知的内容,通知将被传递,就像从未调用过通知服务扩展一样。
这是因为 Apple 不希望您向用户的 phone 发送垃圾邮件通知(甚至或尤其是在后台处理且甚至未发送时),因为这可能会耗尽电池寿命 e。 g.
解决方案
您现在有四种可能的选择:
- 使用静默推送。然后触发本地通知。注意:静默推送并不总是可靠的。
- 使用VoIP 推送。这就是 WhatsApp 使用 e. G。据我所知,它将允许取消通知之类的事情。但是,Apple 在应用程序审查方面很严格:只允许 VoIP 应用程序使用 VoIP 推送(我猜这就是 WhatsApp 引入语音呼叫的原因,因为当通知服务扩展时,他们需要 VoIP 推送来在后台解密消息在 iOS 9).
下还不是一个选项
- 处理任何自定义取消逻辑 server-side 通过仅向应该立即接收这些通知的用户发送通知。
- 将通知 文本处理为不为空但仍隐藏原始通知文本的内容。这可能是有用的,如果你 e。 G。发送一个推送,告诉您您的应用程序的专业版目前可以打折购买:对于现有的专业版用户,您可以将文本编辑为 "Thanks for being a pro."。
我正在使用 NotificationService Extension 目标,以便能够在推送通知出现之前对其进行修改。 它运行良好,但有一些通知在处理后我不想呈现给用户。
我尝试将 bestAttemptContent 标题和 body 设置为“”,但它 return 是完整的通知。
我也试过将 aps["content-available"] 设置为 1,将 body 设置为 "",但我得到了相同的效果。
情况
我实际上试图实现与您相同的目标,即使用本地通知服务扩展管理将何种通知传送到特定设备。但是,我必须弄清楚这是设计使然...
- ...您无法通过离散 api. 取消通知
- ...如果您清空通知的内容,通知将被传递,就像从未调用过通知服务扩展一样。
这是因为 Apple 不希望您向用户的 phone 发送垃圾邮件通知(甚至或尤其是在后台处理且甚至未发送时),因为这可能会耗尽电池寿命 e。 g.
解决方案
您现在有四种可能的选择:
- 使用静默推送。然后触发本地通知。注意:静默推送并不总是可靠的。
- 使用VoIP 推送。这就是 WhatsApp 使用 e. G。据我所知,它将允许取消通知之类的事情。但是,Apple 在应用程序审查方面很严格:只允许 VoIP 应用程序使用 VoIP 推送(我猜这就是 WhatsApp 引入语音呼叫的原因,因为当通知服务扩展时,他们需要 VoIP 推送来在后台解密消息在 iOS 9). 下还不是一个选项
- 处理任何自定义取消逻辑 server-side 通过仅向应该立即接收这些通知的用户发送通知。
- 将通知 文本处理为不为空但仍隐藏原始通知文本的内容。这可能是有用的,如果你 e。 G。发送一个推送,告诉您您的应用程序的专业版目前可以打折购买:对于现有的专业版用户,您可以将文本编辑为 "Thanks for being a pro."。