我现在只是使用了client模块,如何读取本地的数据?

小兔子 2023-3-9 287

我现在只是使用了client模块,如何读取本地的数据?

最新回复 (14)
  • HeavyRain 2023-3-9
    引用 2
    chatmanager接口类有读取本地数据的接口
  • 小兔子 2023-3-9
    引用 3
    对,我看了ChatManager,我现在有点懵,基本上所有的方法都包含有一个conversation,里面都要传一个userid,我这个userid传自己的,chatManger.userId,但是没有获取到数据,不知道这是为什么
  • 小兔子 2023-3-9
    引用 4
    理论上来说我获取我本地所有的数据,应该可以不用传conversation吧
  • x86 2023-3-9
    引用 5
    具体你是想读什么数据?
  • 小兔子 2023-3-9
    引用 6
    我和朋友互发了im信息,但是我现在关闭app,重新进去就没有数据,我想默认渲染出来历史记录
  • 小兔子 2023-3-9
    引用 7
    我看你们的demo是有这个功能,还能拉取服务器上的历史记录,我测试了拉取历史记录和本地的存储数据好像什么都没有,也不知道是不是我传参数不对
  • 小兔子 2023-3-9
    引用 8

    代码如下,麻烦帮我看一下,谢谢

    val conversation = Conversation(Conversation.ConversationType.Single, "102")
    
    val remoteMsg = MutableLiveData<List<Message>>()
    remoteMsg.observe(this) {
        Log.e("嘿嘿哈哈", "onSuccess2999: " + it.size )
    
    }
    ChatManager.Instance().workHandler.post{
        chatManager.getRemoteMessages(conversation, null, 0, 1000, object : GetRemoteMessageCallback{
            override fun onSuccess(messages: MutableList<Message>) {
                Log.e("嘿嘿哈哈", "onSuccess22: " + messages.size )
                remoteMsg.value = messages
            }
            override fun onFail(errorCode: Int) {
                remoteMsg.value = listOf()
                Log.e("嘿嘿哈哈", "onSuccess11: " + errorCode )
            }
    
        })
    }
    
    val conversation1 = Conversation(Conversation.ConversationType.Single, "102", 0)
    ChatManager.Instance()
        .getUserMessages("6606", conversation1, 0, true, 20, object : GetMessageCallback {
            override fun onSuccess(messages: List<Message>, hasMore: Boolean) {
                Log.e("嘿嘿哈哈", "onSuccess999991: " + messages.size )
    
            }
    
            override fun onFail(errorCode: Int) {
            }
        })
  • 小兔子 2023-3-9
    引用 9
    我这里面传的102是我的userId
  • x86 2023-3-9
    引用 10

    你好,关于api的用法,你可以阅读注释,并参考demo

    针对你的上的两个方法:

    1. getRemoteMessages 获取远程消息,就是从服务端获取本地不能存在的消息,一般用户下来加载历史消息;这儿的问题是conversation里面的target字段错误,单聊的时候,target是对方的userId
    2. getUserMessages 是用来获取用户在某个会话中的消息,比如获取某个用户在群聊里面发送的消息;你可能是想使用getMessages 获取会话的本地消息。

    这儿是一些野火 IM 想的基本概念,请你看下基础知识

  • 小兔子 2023-3-9
    引用 11

    还是不行,获取的的消息数量为0,我是用了下面的方式,获取对方id为2的用户和我的聊天记录,获取不到

    val conversation1 = Conversation(Conversation.ConversationType.Single, "2")
    ChatManager.Instance()
        .getMessages(conversation1, 0, false, 1000, null, object : GetMessageCallback{
            override fun onSuccess(messages: MutableList<Message>, hasMore: Boolean) {
                Log.e("嘿嘿哈哈", "qinqinni: " + messages.size )
            }
    
            override fun onFail(errorCode: Int) {
    //                    TODO("Not yet implemented")
            }
    
        })
  • x86 2023-3-9
    引用 12
    "2" 不是野火里面的用户 id,野火里面默认的用户 id 不是这样样子
  • 小兔子 2023-3-10
    引用 13
    这个id不就是登录的userId吗?我登录设置的userId就是2,8,102,这种
  • 小兔子 2023-3-10
    引用 14
    用户之间发送消息,我也是用的这个id,消息发送是互通的
  • HeavyRain 2023-3-10
    引用 15
    可以用野火的demo操作,然后看一下sdk的各个参数跟你使用的参数是否一致
返回