我目前正在开发我的应用程序,使用Parse.com服务发送推送。
我已经成功地执行了,所以推送和接收是正确的。我需要帮助的是,当实际尝试处理通知时,如何思考。
我知道怎么做,但我有些问题困扰着我,很难在网上专门搜索这样的问题,所以经过几个小时的搜索和思考,我放弃了,想和你们分享我的问题。
现在转到实际问题上:
我应该在哪里实现代码来处理推送通知来做一些事情?在我的应用程序中,将有不同的推送通知用于不同的目的,每个推送通知都要求应用程序做一些事情。我是否应该编写相同的代码来处理我拥有的每个viewController上的推送通知(因为我认为当收到推送消息时,我不能真正知道用户在哪里),或者显然有一个更聪明/更干净的解决方案?
让我们说,一个特定的推送通知应该发出一个警报,用户可以按下两个按钮。如果我有三个不同的视图,即三个不同的viewControllers,那么我需要实现相同的代码来对每个VC执行警报吗?
如果我的问题不清楚,请告诉我,我会尽量解释得更透彻。谢谢。。
发布于 2015-12-21 21:30:48
我通常创建一个类,它处理通知,并引用我称为表示管理器(它知道如何实例化视图控制器)(它基本上保持对故事板的引用,并为应用程序委托处理windows设置)。应用程序委托实例化此通知处理程序,并将所有本地/远程通知转发给它。
为了显示通知的UI,我选择使用一个操作队列,就像在WWDC15会话“高级NSOperation”期间描述的一个苹果。我只是安排的操作,提出一个VC和完成时,VC被解雇。这些UI操作是相互排斥的(参见苹果示例代码中的AlertOperation )。这样,当收到大量通知时,我不会显示多个VC,但用户尚未关闭第一个通知的UI。
我们通过从主UIWindow的presentedViewController遍历到最内部的rootViewController来呈现这样的“模式”VC。这为您提供了一个VC,只要您不使用特殊的表示上下文配置,就可以调用presentViewController()。(同样,可以为您进行此查找的演示文稿管理器在这里也很有用)
如果您为该演示文稿实现了一个自定义演示控制器,您还可以创建一个自定义VC,并使其看起来像一个模态对话框/弹出。或者是像Facebook Messenger使用的那种从顶端下来的酒吧。
https://stackoverflow.com/questions/34404408
复制相似问题