ios - 有什么有效的方法可以自动从rest API获取更新而无需推送通知?

标签 ios swift notifications real-time-updates

我正在创建一个类似Facebook的社交iOS应用程序。如果有新的数据,我目前计划使用推送通知来更新应用程序中的某些内容。更新,如标签栏徽章添加一个号码,如果有新的朋友请求或帖子。但是,如果用户禁用推送通知怎么办?用户将如何接收此更新?
我建议的解决方案是:
在后台运行计时器以轮询服务器的更新。
应用一些pull to refresh函数。
第一个问题是它可能会大量使用资源,特别是网络。
第二个问题是,只有在完成拉入刷新时,更新才可用。
一旦更新/新数据可用,是否有其他有效获取更新/新数据的方法?

最佳答案

为此,您需要遵循观察者模式。观察者模式可以工作,其中一个用户发出操作,另一个用户监听发出的操作,并执行所需的操作。
您可以使用Firebase作为BaaS(后端作为服务)https://firebase.google.com。或者编写自己的socket.io服务器,当应用程序打开时,该服务器将始终与应用程序通信。所以一旦数据库发生变化,用户就会收到消息通知并更新数据,不管发生了什么变化。
这是怎么工作的。
1个客户端正在侦听消息-(“update”)
2数据库已更改服务器发出消息-('update')
3当客户端正在监听消息-(“update”)时,您将收到消息通知,并可以更改或更新已更改的数据。
谢谢。
如果不清楚,请随意提问。

关于ios - 有什么有效的方法可以自动从rest API获取更新而无需推送通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42274432/

相关文章:

ios - 如何省略 [super layoutSubviews] 对 UITableViewCell 的调用?

ios - iOS 上的 Tesseract - 糟糕的结果

Swift:两个 UIView 的不同大小

iphone - 接到来电时,录制的视频已损坏,并且 AVFoundation 方法出现错误

java - 如何从 Appium 中的推送通知获取 JSON 数据?

ios - 如何在 Cocoa Touch 中切换 View ?

ios - TableView 中混合 UIPicker 和 TextField

swift - 协议(protocol)一致性在非最终类中失败,因为它使用 'Self' 作为非参数、非结果类型

swift - 有没有一种巧妙的方法可以将分数表示为属性字符串?

iphone - 我们可以使用phonegap框架在iphone中进行推送通知吗?