如果后台杀掉app,变量值就不存在了,再想用,就要重新初始化。这样未读消息数量就会被重置。
如果是和「未读消息」有关,可以参考文档:https://leancloud.cn/docs/realtime-guide-intermediate.html#hash1862532095
哥,我现在只想单纯的知道:ios AVIMClient如何持久化保存到本地。这个问题困扰我很久了。通过什么方式存储呢?你们到oc ChatKit怎么实现这个的?麻烦哥了
您好,我并不清楚上面这句话是什么意思,或者说我不能了解到您的目的。所以目前无法提供帮助。
比如说:我想发一条消息,我要先let client = AVIMClient.init,然后client.open后才能发消息。现在我想把这个client保存到本地,到其他页面,直接调用client.open,就不init了。怎么保存这个值?
看来您对我们的 IM 功能以及其中的机制还不太熟悉,建议您先参考这个 Demo 研究研究,熟悉一下大致的原理。
我用到是oc的SDK,文档我都看了十来遍了,我从头到尾重写的即时通讯模块,就差这一步保存问题。
哥,我就想知道,如果我现在想存let client = AVIMClient.init这个值,用什么方式可以存下来。是要进行归档、转成json等等。。。
为什么要存 AVIMClient 的实例呢?我认为是完全没有必要的。
哥,我经过测试,真的有必要。。。你先告诉我怎么存呗,然后我告诉你为什么有必要。。。
哥?告诉我呗。。。
您好,按正常逻辑,每次 App 启动后使用 IM 功能,都需要初始化 Client 并执行 open 操作。
Client 实例的持久化保存是完全没有必要的。
哥,但是经过我实际测试,如果聊天列表界面有未读消息,杀掉app后,再进来,未读消息就没有了
你们oc的chatkit的demo不存在这个问题,你们肯定存了什么东西。但是我按照开发文档写的去做,这个问题就是无法解决
如果是指「未读消息数」,那它是不用缓存的,只要没有调用 conversation 的 read 方法,「未读消息数」不会被清理的,具体请参考文档。
文档写:清除对话未读消息数的唯一方式是调用 Conversation#read 方法将对话标记为已读,一般来说开发者至少需要在下面两种情况下将对话标记为已读:
在对话列表点击某对话进入到对话页面时用户正在某个对话页面聊天,并在这个对话中收到了消息时。
但是我直接杀掉app,就能重置这个未读数量,对我造成较大的困扰。
这个文档我都看了十几遍了,我在写一个类似微信的软件,这个问题让我很头疼。如果现实真的是像文档写的,我就不需要困扰了。真的。。。
请参考:https://forum.leancloud.cn/t/swift-avimclient/20362/6?u=pzheng
哥,demo我都看过很多次了。其他问题都解决了。就差这一个。你们oc都demo封装的太复杂了,我实在是找不到想要的东西。
清除对话未读消息数的唯一方式是调用 Conversation#read 方法将对话标记为已读。但是现实不是这样的。。。