作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在创建一个类似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/
我是一名优秀的程序员,十分优秀!