在 Swift 中在后台检查服务器端应用程序通知

Posted

技术标签:

【中文标题】在 Swift 中在后台检查服务器端应用程序通知【英文标题】:Checking for server side app notifications in the background, in Swift 【发布时间】:2016-11-14 09:02:37 【问题描述】:

当我说通知时,我指的是自定义应用通知,而不是 ios 通知。通知,如 Facebook 的通知选项卡。基本上,我想检查用户是否有新朋友请求,或者是否有人对他们的帖子发表了评论,然后将此数据加载到我的通知选项卡中显示的 TableView 中。

我想知道如何不断检查来自我的服务器的这些通知。显然我不应该检查单个标签栏的视图控制器,例如 NotificationsViewController。所以我在想这种类型的功能应该在 AppDelegate 中执行吗?

我如何在后台无缝执行请求,然后让我的通知选项卡捕获响应并解析它,以便我可以显示通知徽章。一个 Swift 代码的 sn-p,我应该把它放在哪里真的很有帮助!

谢谢。

【问题讨论】:

【参考方案1】:

您可以使用静默推送通知,它会在不向用户显示警报的情况下通知您的应用程序发生了一些新的事情(从您的服务器发送),在后台执行重复请求非常消耗能量并且不建议,它也不会如果您的应用程序未打开,则可以工作。要存储它,只需使用NSUserDefaultCoreData

【讨论】:

然后从CoreData读取?一些通知也将在本地生成,例如一些特定任务的失败将被列出。 CoreData 将是存储更复杂数据对象的好选择,NSUserDefault 适用于非常小规模的数据,例如 1 类对象,本地生成与否它也将是同一个对象,您可以一视同仁 好的。我仍然会遇到同样的问题,如何持续检查核心数据以获取通知更新?有没有我可以调用的函数来更新我的通知选项卡,我在哪里可以做到这一点? 没有意义,一旦你通过推送从服务器获取数据,你将它保存在 coredata 中,然后你获取它的数字或更新或任何东西 但是本地通知呢?

以上是关于在 Swift 中在后台检查服务器端应用程序通知的主要内容,如果未能解决你的问题,请参考以下文章

Swift 后台通知 Firebase

如何始终在后台运行服务?

在任何时间点在 iOS7 或更高版本中在后台启动定位服务

在一个事件中在后台触发本机 Firebase 多个通知

Swift - 在后台在应用程序中接收本地通知时执行功能

使用swift后台获取本地通知