【发布时间】:2015-12-23 10:54:07
【问题描述】:
我有一个关于如何处理传入推送通知的问题。如您所知,一个应用程序可以有很多视图。接收时,我想例如显示警报或在用户所在的视图上做其他事情(因为我真的不知道用户在收到通知时将在哪个视图中)。现在,如果每个视图都代表一个 swift 文件,那么我是否需要在每个 swift 文件中实现相同的代码来处理传入的推送通知,或者我猜有更好的设计或技术来解决这个问题?
我已经搜索了一段时间,我只能找到当应用程序在后台而不是前台时遇到问题的人:/
任何东西都会很好,教程、指南、代码示例。如果可能的话,有很多方法可以解决这个问题,这样我就可以研究它们并选择最适合我的方法。
【问题讨论】:
-
不,为通知设置一个监听器,或者只使用 appDelegate,然后只呈现一个覆盖视图或做任何你想做的事情 - 如果每个视图都必须做不同的事情,你可以创建一个协议来每当通知到达时,视图符合并调用协议方法
-
但是在 appDelegate @luk2302 中处理任何需要做的事情是否被视为“良好的编码”?
-
取决于您想要实现的目标。让 appDelegate 成为入口点并尝试尽早委托功能,但尽量避免让每个视图都订阅通知本身。
-
但我的用户在收到通知时可能处于任何视图中?我仍然需要订阅每个视图,对吗? @luk2302
-
没有。使所有想要接收通知的视图都符合一个自创协议,该协议定义了某种函数
receivedNotification。然后检查 appDelegate 当前视图是否符合协议。如果是则调用该方法,否则做一些不同的事情
标签: ios swift push-notification push