本文提供DataSDK的接口说明。

API

方法 请求参数 返回值 描述
subscribe Function(IStore Function 监听Store变更,实时得到最新数据
activeConv appCid、IActiveOption Promise<Boolean> 激活选中会话
  • appCid必填,为待激活会话的ID
  • IActiveOption可选
inactiveConv - Boolean 取消激活会话
removeLocalDismissedConv appCid void 移除本地Store中的已经解散的会话
listConversations - Promise<Number> 拉取最近会话列表
listPrevMsgs cursor、count Promise<Number> 拉取历史消息
listNextMsgs cursor、count Promise<Number> 拉取最新消息
updateTypingStatus isTyping、TypingType void 更新正在输入状态
sendTextMessage appCid、text、ISendMsgExtraOptions Promise<void> 发送文本消息

ISendMsgExtraOptions为额外消息参数,可选

sendCustomMessage appCid、CustomContentModelISendMsgExtraOptions Promise<void> 发送自定义消息

ISendMsgExtraOptions为额外消息参数,可选

sendPhotoMessage appCid、File、ISendMsgExtraOptions Promise<void> 发送图片消息
  • File:浏览器File对象,请参见File
  • ISendMsgExtraOptions为额外消息参数,可选
sendLinkMessage appCid、LinkContentModelISendMsgExtraOptions Promise<void> 发送链接消息

ISendMsgExtraOptions为额外消息参数,可选

sendAtMessage appCid、ElementModel[]、ISendMsgExtraOptions Promise<void> 发送@人消息

ISendMsgExtraOptions为额外消息参数,可选

sendStructMessage appCid、StructContentModelISendMsgExtraOptions Promise<void> 发送结构化消息

ISendMsgExtraOptions为额外消息参数,可选

sendFileMessage appCid、File、ISendMsgExtraOptions Promise<void> 发送文件消息
  • File:浏览器File对象,请参见File
  • ISendMsgExtraOptions为额外消息参数,可选

参数类型

名称 是否必选 类型 介绍
cursor String Store中的cursor
count Number 分页数
isTyping Boolean 是否正在输入
text String 文本内容,最多16K。详情请参见字段限制
表 1. IStore
名称 是否必选 类型 介绍
appCid String 当前会话的会话ID
convIdList String[] 会话ID列表。按更新时间排序
convMap {[key: string]: UserConversationModel} 会话ID对应会话数据的Map
msgIdList String[] 消息ID列表,按发送时间排序
msgMap {[key: string]: UserMessageModel} 消息ID对应消息数据的Map
msgNextHasMore Boolean 是否有更新的消息可以加载
msgPrevHasMore Boolean 是否有历史消息可加载
msgNextCursor Boolean 加载新消息的cursor
msgPrevCursor Boolean 加载历史消息的cursor
msgLoading Boolean 是否正在加载消息列表数据
convLoading Boolean 是否正在加载会话列表数据
typingStatusMap { [cid: string]: TypingType } 当前会话是否正在输入
表 2. IActiveOption
名称 是否必选 类型 介绍
msgFirstPageSize Number 首屏拉取消息数。取值范围:20~100。
表 3. TypingType
枚举key 描述
text 0 文本
audio 1 音频
image 2 图片
表 4. ISendMsgExtraOptions
名称 是否必选 类型 介绍
extension {[key: string]: string} 扩展属性
redPointPolicy Number 未读消息红点控制。取值:
  • 0:增加红点
  • 1:不增加红点

默认为0

msgReadStatusSetting Number 消息已读状态配置。取值:
  • 0:继承会话已读状态设置
  • 1:有已读状态
  • 2:无已读状态

默认为1

代码示例

react-hooks

// hook 
import React from 'react'
import { DataSDK, initStore } from '../AIM'

export const useStore = () => {

    const [store, setStore] = React.useState(initStore)

    React.useEffect(function DidMount() {
        const storeUnsubscribe = dataSDK.subscribe((store) => {
            setStore(store)
        })
        DataSDK.listConversations(0, 1000) // 默认拉取首屏
        return () => {
            storeUnsubscribe()
        }
    }, [])

    return [store, dataSDK]
}
// Chat 登录成功后渲染
import React, { useState, useCallback, FunctionComponent, useEffect } from 'react'

export const Chat: FunctionComponent<{}> = React.memo(() => {
    const [store, DataSDK] = useStore()
    // DataSDK.activeConv(cid) 激活会话
    return (
        <div id="chat">{JSON.stringify(store)}</div>
    )
 });