IOS通知实现设计技术

时间:2015-12-21 21:12:50

标签: ios objective-c iphone push-notification apple-push-notifications

我目前正在使用 Parse.com 服务开发我的应用程序以发送推送。

我已成功实施,以便正确发送和接收推送。我需要帮助的是如何在实际尝试使用通知时思考。

我知道怎么做但我有一些困扰我的问题很难在网上专门搜索这样的问题所以经过几个小时的搜索和思考我放弃并想到与我分享我的问题你们。

现在转到实际问题:

我应该在哪里实现代码来处理推送通知来做某事?在我的应用程序中,将有不同的推送通知用于不同的目的,每个都需要应用程序执行某些操作。我是否应该编写相同的代码来处理我拥有的每个viewController上的推送通知(因为我认为我不知道用户在收到推送时会在哪里)或者显然有更智能/更清洁的解决方案?

让我们说一个特定的推送通知应该在用户可以按下两个按钮的位置发出警报。如果我有三个不同的视图意味着三个不同的viewControllers我需要实现相同的代码来对每个VC进行警报吗?

如果我的问题不清楚,请告诉我,我会尽力解释。谢谢..

1 个答案:

答案 0 :(得分:1)

我通常创建一个处理通知的类,并且引用了一个引用它的表示管理器,它知道如何实例化视图控制器(它基本上保持对故事板的引用并处理应用程序委托的窗口设置)。应用程序委托实例化此通知处理程序并将所有本地/远程通知转发给它。

为了呈现通知的UI,我选择使用操作队列,如WWDC15会话期间描述的一个苹果"高级NSOperation"。我只是安排提供VC的操作,并在VC被解雇时完成。这些UI操作是互斥的(请参阅apples示例代码中的AlertOperation)。这样,当收到很多通知但用户尚未关闭第一个用户界面时,我不会显示多个VC。

我们提出这样的"模式"通过从主UIWindow presentedViewController遍历最里面的rootViewController来获取VC。只要您不使用特殊的演示文稿上下文配置,这就为您提供了一个可以调用presentViewController()的VC。 (同样,可以为您执行此查找的演示管理器在这里派上用场了)

如果为该演示文稿实现自定义演示文稿控制器,您还可以创建自定义VC并使其看起来像模式对话框/弹出窗口。或者像Facebook Messenger一样从顶部下来的栏。