E10鸿蒙App

入口:EntryAbility -> onWindowStageCreate windowStage.loadContent

jsApi:JSNameConstants

App主页面:MainPage

消息主页面:MessageCenterPage

会话列表:SessionListView+IMHeaderView+AppImageKnifeComponent

会话详情:SessionPage

消息列表Item:SessionMessageListView->MessageListItemView

消息组件:

MsgReplyView

MsgRefView

TextMessageView

ImageMessageView

LocationMessageView

FileMessageView

EntityMessageView

GroupShareMessageView

UserCardMessageView

LinkMessageView

UserCardMessageView

NoticeMessageView

ExpressionMessageView

InnerMsgView

GroupSolitaireMessageView

MessageRecordView

AddOneMessageView

RevokeMessageView

ImageAndTxtView

MsgRichTxtView

VideoMessageView

VoiceMessageView

NotSupportMessageView

表情回复:MsgEmojiReplyView

消息长按操作菜单:menuContentBuilder

消息长按菜单点击:menuItemClick

群设置:GroupChatInfoPage

群成员:GroupMemberListPage

群管理:GroupManageNewPage

http接口请求:

复制代码
接口在ImHttpFunctions中添加如:
  getSessionGroup(callBack:imHttpCallBack){
    let getHttpPo: ImHttpPO = new ImHttpPO()
    getHttpPo.url = ImHttpAPIConstants.getSessionGroup
    getHttpPo.method = 'get'
    interface params {
      'version':string
    }
    let par: params = {
      'version': '1'
    }
    getHttpPo.params = par
    ImHttpManager.getInstance().imSdkHttpGet(getHttpPo, {
      onSuccess(data: string) {
        let dataObj: ImHttpResponsePO = JSON.parse(data) as ImHttpResponsePO
        if(dataObj.data){
          callBack.onSuccess(dataObj.data)
        }
      },
      onError(error: string) {
        callBack.onError(error)
      }
    })
  }

sdk请求

sdk相关码ImOpcode

通知code:IMSdkNotice sdk操作码:IMSdkOpcode

复制代码
//只需回调成功、失败
ImSdkFunctions.getInstance().setSessionRemind(sessionVo, optType,{
          onSuccess(jsonKey,JsonValue){

          }
        })

//ImSdkFunctions下
  setSessionRemind(sessionVo:SessionListVO,optType:string,callBack: ImOnResponse){
    let pStr = JSON.stringify({
      'group_id': 'xxx',
      'flag': 'xxx'
    })
    getDataAndSetCallback(IMSdkOpcode.kOPSetGroupAdmin, pStr, callBack)
  }


//2.需要回调数据
ImSdkFunctions.getInstance().getGroupInfo(this.groupId, {
        onSuccess(jsonKey: string, jsonStr: string) {
          let data: GroupListData = JSON.parse(jsonStr);
          if (data != null && data.datas != null && data.datas.length > 0) {
            let itemData: GroupItemData = data.datas[0];
            if (itemData != null && itemData.groupinfo != null) {
                //...
            }
          }

        }
      })

//ImSdkFunctions下
  getGroupInfo(groupId:string,callBack: ImOnResponse): boolean{
    let pStr = JSON.stringify({
      'group_ids': [groupId],
      'api_get_type':"1",
    })
    return getDataAndSetCallback(IMSdkOpcode.kOPGetGroupInfo, pStr, callBack)
  }

请求人员

复制代码
PersonManager.getPerson(checkUtil.checkStr(messageVO.suid), checkUtil.checkStr(messageVO.scid), person => {
          try {
            if (person) {
//            messageParser.parseAvatarInfo(messageVO, person)
            }
            resolve(messageVO)
          } catch (e) {
            reject(e)
          }
        })

消息开关:MsgInfoSettingUtils

界面路由

复制代码
//ImPageOpenUtils
  openGroupManagePage(session: SessionListVO | undefined) {
    router.pushNamedRoute({
      name: 'groupManageNewPage',
      params: {
        session: session ?? new SessionListVO()
      }
    })
  }

@Entry({ routeName: 'groupManageNewPage' })
@Component
export struct GroupManageNewPage {

}

//main_pages下
{
  "src": [
    //...
    "session/pages/GroupManageNewPage"
  ]
}

//imStaticLibrary/index下
export { GroupManageNewPage } from "./src/main/ets/session/pages/GroupManageNewPage"

多语言:

复制代码
1、本地code多语言
LanguageUtils.getData(LanguageUtils.LABEL_TOPIC_SETTING, "话题设置");

2、网络code多语言
let moduleLabel: object  = ImCacheFunctions.getInstance().moudleLabelPO_ALl.label as object let str = moduleLabel[txt.id18n] ? moduleLabel[txt.id18n] : ''
相关推荐
IT 行者11 分钟前
GitHub Spec Kit 实战(五):/speckit.tasks 怎么拆——Spec Kit 五部曲收官
java·ai编程·claude
AC赳赳老秦18 分钟前
OpenClaw+Power Apps 实战:自动生成 Power Apps 应用、连接 Excel 数据源
大数据·开发语言·python·serverless·excel·deepseek·openclaw
提笔了无痕20 分钟前
如何用Go实现整套RAG流程
开发语言·后端·golang
(Charon)22 分钟前
【C++ 面试高频基础:指针、引用、const、static、new/delete 总结】
java·开发语言
Yeats_Liao40 分钟前
Feed流系统设计(三):数据模型与存储设计,从表结构到Redis收件箱
java·javascript·redis
JiaHao汤1 小时前
分布式事务方案全景:从理论到 Seata 落地
java·分布式·spring·spring cloud
我是真菜1 小时前
彻底理解js中的深浅拷贝
前端·javascript
2601_961875241 小时前
法考考试时间安排及科目|时间表|资料已整理
开发语言·c#·inverted-index·suffix-tree·sstable·r-tree·lsm-tree
江畔柳前堤1 小时前
github实战指南07-CLI 与高级技巧
前端·人工智能·chrome·深度学习·github·caffe·issue
AI科技星1 小时前
数术工坊第八卷:算力革命
c语言·开发语言·网络·量子计算·agi