Swift:如何从服务器接收远程通知?
Posted
技术标签:
【中文标题】Swift:如何从服务器接收远程通知?【英文标题】:Swift: How to receive a remote notification from server? 【发布时间】:2016-06-07 14:37:39 【问题描述】:这是一个普遍的问题,但我似乎找不到一个直接的答案,而且我不确定要寻找什么。我有一个后端,当有人喜欢您发布的内容时发送通知,我可以发送它并且应用程序接收它。但是,我不确定如何创建 UI 来处理通知。我的第一个猜测是,由于接收通知会在 AppDelegate 中触发 didReceiveRemoteNotification fetchCompletionHandler,我应该尝试在该函数中获取当前 VC 并从那里添加图形元素。然而,我读到这不是你应该做的事情,你应该使用 NSNotifications 代替。问题是我不确定我是否理解如何使用 NSNotificationsCenter 表达远程通知。
你有什么推荐的?
【问题讨论】:
可能重复:***.com/questions/31610896/… 其实我的问题没那么复杂:我可以在应用中接收信息。我的问题是,我应该如何在呈现的视图控制器上显示它?我应该在应用委托中获取呈现的视图控制器并添加一个 UIView 吗? 不知道它与远程通知有什么关系。 因为我在应用程序委托中收到来自服务器的远程通知,但我不知道如何在不使用 UIAlert 的情况下显示它。 【参考方案1】:NSNotification 是观察者设计模式的一部分。
它就像一个“广播”。
首先你必须注册每个应该监听事件的组件:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myFonction) name:@"Notif name" object:nil];
//swift
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(myFonction), name: "notif name", object: nil)
接下来,当你有消息要广播时,用相同的名称发布通知:
[[NSNotificationCenter defaultCenter] postNotificationName:@"Notif name" object:nil];
//swift
NSNotificationCenter.defaultCenter().postNotificationName("notif name", object: nil)
当您发布通知时,myFonction
方法将在 target
上调用
【讨论】:
其实我的问题没那么复杂:我可以在应用中接收信息。我的问题是,我应该如何在呈现的视图控制器上显示它?我应该在应用程序委托中获取呈现的视图控制器并添加一个 UIView 吗?我正在尝试像在大多数常规应用程序中一样在屏幕顶部获取 UIView 而不是 UIAlert ... 我的答案是这样做的。在myFonction
中,您可以做任何您想做的事情:显示警报、添加自定义 UIView...
你是对的,我试图显示的 UIView 没有出现,所以我认为可能需要更多步骤,但这是范围的问题,所以它现在可以工作了。感谢您的详细解答!以上是关于Swift:如何从服务器接收远程通知?的主要内容,如果未能解决你的问题,请参考以下文章