iOS使用推送解决未读消息实时刷新

这篇博客记录了在iOS项目中如何使用推送来实时更新未读消息数量,避免频繁查询接口。通过后台Redis定时刷新,当用户未读消息变动时发送自定义通知到移动端。iOS端接收到通知后,将未读数保存到NSUserDefaults,更新UICollectionView并处理问题,如使用`reloadItemsAtIndexPaths:`避免错误刷新,以及解决通知更新UI时的约束问题。同时提到了集成极光推送时遇到的iOS 10以下系统闪退问题,原因是UserNotifications.framework库引入方式不当。
摘要由CSDN通过智能技术生成

最近项目需要实现未读消息实时刷新,UI界面还是比较low的,用的uicollectionview放了一些cell,每个代表一个功能,项目需要在消息的cell上,图片的右上角实时刷新未读消息的数量,因为不想每隔几秒就调用接口去查询看有没有新消息(感觉这种方式好傻…),所以后面决定使用推送的方式实现该功能,后台使用Redis每五秒刷新一次,一旦某个用户的未读消息条数更新了,就放一个自定义通知(本来准备用通知的badge属性,但是发现安卓并没有这个东东)到该用户,移动端接收到以后就进行相应处理,需求大概就这样,这里记录一下中间遇到的问题。

iOS这边实现的逻辑大概是接收到自定义通知以后,将未读条数保存到NSUserDefaults中,然后发送通知(对UICollectionView所在的Controller注册了一个观察者对象),通知UICollectionView进行刷新,进入消息列表读取消息以后,调用接口更新消息状态,返回成功以后更新未读条数并存入NSUserDefaults,并发送通知,开发过程中遇到了几个问题。

代码逻辑是在加载cell的时候,判断这个cell是不是消息列表的cell,如果是就在右上角加一个自定义的button,文本就是NSUserDefaults中存的数值,这个button是用的Masonry加的约束,关于Masonry的使用,可以参考http://www.cocoachina.com/ios/20

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值