松岗网站建设公司,wordpress多站点备份,如何建设企业网站,网站开发+兼职挣钱吗鸿蒙开发融云IMKit初始化和登录
融云鸿蒙版是不带UI的#xff0c;得自己一步步搭建。 下面说如何初始化和登录#xff1a;
一、初始化#xff1a;
/*** desc : 初始化融云* author : congge on 2024-07-12 15:47**/public static initRongIm() {IMEngine.getInstance()…鸿蒙开发融云IMKit初始化和登录
融云鸿蒙版是不带UI的得自己一步步搭建。 下面说如何初始化和登录
一、初始化
/*** desc : 初始化融云* author : congge on 2024-07-12 15:47**/public static initRongIm() {IMEngine.getInstance().init(getContext(), CommonConstants.RONG_IM_KEY, new InitOption())// 注册自定义消息let clazzList: ListMessageContentConstructor new List()clazzList.add(CustomizeReadReceiptMessage)clazzList.add(CustomizeGiftMessage)IMEngine.getInstance().registerMessageType(clazzList)// 监听消息接收IMEngine.getInstance().setMessageReceivedListener((message: Message, _info: ReceivedInfo) {logContent(receivedMessage,message)if (message.content) {if (message.objectName HQVoiceMessageObjectName message.direction MessageDirection.Receive !_info.isOffline) {// isOffline为true,是卸载重装收到的消息不用管正常刚收到的语音消息全部是未点击它不可能一收到就点击了的MMKVNoClearUtil.saveVoiceMessageReadStatus(message.targetId,message.messageId,false)}// 在这就不发已读回执了避免两个鸿蒙一直在互发已读// if (MMKVUtil.getCurrentChatTargetId(message.targetId) message.targetId) {// ImUtils.sendMyReadReceiptMessage(message.targetId,message.sentTime)// } else if(MainPage.homeTabSelected 3){// ImUtils.sendMyReadReceiptMessage(message.targetId,message.sentTime)// }// 刷新首页未读数EventKeys.postEvent(EventKeys.MsgRedEvents,MsgRedEvent())// 刷新会话列表不打算自己插入会话EventKeys.postEvent(EventKeys.RefreshMsgListEvents)}// 接收到单聊消息发送到聊天界面if (message.conversationType ConversationType.Private || message.targetId ImType.KEFU_ID) {EventKeys.postEvent(EventKeys.ReceivedImMessageEvents,ReceivedImMessageEvent(message))}});}二、登录
public static connectIm() {if (MMKVUtil.getImToken()) {ImUtils.realConnect(MMKVUtil.getImToken());} else {//正常只有第一次进入应用会为ImViewModel.postImToken(false, (result) {ImUtils.realConnect(result.token)})}}private static realConnect(token?: string, isAgain: boolean false) {if (token) {IMEngine.getInstance().setConnectionStatusListener((status: ConnectionStatus) {logContent(IM-App, setConnectionStatusListener onChanged status: status);if (status ConnectionStatus.DisconnectUserKicked) {showToast($r(app.string.account_notice_tick));// 特别注意对方登录强迫退出// Router.pushGuidePage(true)}});// timeout ≦ 0IM 将一直连接直到连接成功或者发生无法连接的业务错误如 token 非法IMEngine.getInstance().connect(token, 0).then(result {if (EngineError.Success result.code) {// 连接成功MMKVUtil.saveTargetId(result.userId)EventKeys.postEvent(EventKeys.MsgRedEvents,MsgRedEvent())logContent(imStatus, 成功token: token)logContent(imStatus, 成功targetId: result.userId)//let userId result.userId;return;}if (EngineError.ConnectTokenExpired result.code) {// Token 过期从 APP 服务请求新 token获取到新 token 后重新 connect()} else if (EngineError.ConnectionTimeout result.code) {// 连接超时弹出提示可以引导用户等待网络正常的时候再次点击进行连接showToast($r(app.string.net_error))} else {//其它业务错误码请根据相应的错误码作出对应处理。logContent(imStatus, result.code)}});}}鸿蒙融云Demo源码结构图 有问题或者需要完整源码的私信我