根据类型限制APNS,Swift 3

时间:2017-08-08 08:44:08

标签: swift apple-push-notifications

在我目前的应用程序中,APNS启动并运行没有问题。但是,我对如何根据通知类型处理过滤某些有效负载感到困惑。请参考下图:

enter image description here

从上到下,UISwitches对应于:

  • 所有通知
  • 群组通知
  • 上传通知
  • 内容通知
  • 评论通知

分别

每个UISwitch的状态都会保存在UserDefaults中供以后使用。但是,我无法思考如何正确使用它来限制来自的消息。

如果有效负载包含自定义键/值信息,是否存在限制传入通知出现的客户端方法/方法? Ex // Payload包含{“type”:“comment”}。

修改UISwitch“关闭”时,期望的效果是横幅UI不显示,声音不触发,但允许传递该类型的有效载荷信息(用于更新{{1 }徽章)。

似乎可能需要修改后的静音通知版本,因为没有任何有效负载限制UITabBarController徽章的更新。非常感谢任何参考或评论。

1 个答案:

答案 0 :(得分:1)

如果您有权访问API,那么服务器端解决方案将是最佳选择。但是,如果您确实需要客户端解决方案,那么它也是可能的。

您无法决定是否向用户显示推送通知,系统会自动发送非静音推送通知并将其显示给用户,而不会显示静默推送通知,仅会传送到应用。您无法更改此行为。

但是,我现在至少可以考虑一种解决方法。默认情况下,根据用户设置提供所有推送通知,对于打开的通知,立即发送复制静默推送通知内容的本地通知。这样,您可以在发送后根据类别过滤通知。请记住,如果通知对时间至关重要,这可能不是最好的方法,因为推送通知和本地通知之间可能会有轻微的延迟。