跳转到正文

HarmonyOS 方法参考 ​

先按 HarmonyOS 接入加入本地模块与根页面。用户、认证、会话目标、未读和错误见 SDK 对象说明。Promise 方法失败时进入 catch;Promise<void> 正常完成没有额外数据。

创建配置:new PopoConfig(...) ​

参数类型必填说明
serverURLstring是部署根地址。
authProvider() => Promise<PopoAuthInfo>是向宿主后端取票,返回用户资料、IM Token 和秒级 expireAt。
webSocketURLstring否不传时从部署地址派生 /ws。
onConversationRequested() => void否SDK 请求宿主显示会话根页时调用;宿主切换到自己的消息标签。

返回: PopoConfig 配置对象。

初始化:PopoIM.initialize(context, config) ​

参数 context: common.Context 为宿主上下文,config: PopoConfig 为配置。

返回: void。配置错误会抛出 PopoError;初始化后再登录。

登录:PopoIM.login() ​

无参数。

返回: Promise<void>,在认证和首次同步完成后正常完成。

恢复缓存:PopoIM.restoreCachedSession(user) ​

参数 user: PopoUser 为宿主确认的本机用户。

返回: Promise<boolean>,true 表示恢复到可用缓存,false 表示没有可恢复缓存。此操作不请求网络,之后仍调用 login。

更新资料:PopoIM.updateCurrentUser(user) ​

参数 user: PopoUser 为当前用户的新资料,不用于切换身份。

返回: Promise<void>。资料由宿主管理时,先保存并同步后端资料,再更新 SDK。

退出:PopoIM.logout() ​

无参数。

返回: void,退出当前 SDK 会话。宿主同时完成自己的账号退出。

前后台通知:PopoIM.setApplicationActive(active) ​

参数 active: boolean,前台为 true,后台为 false。

返回: void。跟随 Ability 生命周期调用,不需要重新初始化 SDK。

读取缓存:PopoIM.cacheSize() ​

无参数。

返回: Promise<number>,媒体缓存字节数。

清理缓存:PopoIM.clearCache() ​

无参数。

返回: Promise<number>,清理后剩余字节数。不会删除聊天记录、草稿或待发送内容。

添加未读监听:PopoIM.addUnreadListener(listener) ​

参数 listener: (count: PopoUnreadCount) => void 接收 conversation、contact 两个未读总数。

返回: PopoUnreadObserver,保留对象用于取消监听。

取消未读监听:PopoIM.removeUnreadListener(observer) ​

参数为添加时返回的 PopoUnreadObserver。

返回: void。

处理消息通知:PopoIM.handleMessageNotification(conversationID) ​

参数 conversationID: string 为通知中的会话 ID。

返回: void,交给 SDK 处理会话导航。不是在此传对方的用户 ID。

打开会话:PopoUI.openConversation(target) ​

参数 target: PopoConversationTarget,用 .friend(userID) 或 .group(groupID) 创建。

返回: Promise<void>,正常完成表示已经进入目标会话。

好友二维码内容:PopoUI.friendQRCodePayload(username) ​

参数 username: string 为完整可搜索账号。

返回: string,可直接编码为二维码的内容。

解析好友二维码:PopoUI.friendUsername(payload) ​

参数 payload: string 为扫码得到的内容。

返回: string,解析出的账号;无效内容按 SDK 错误处理,不能把任意扫码文本当作账号。

生成二维码:PopoUI.createFriendQRCode(username, size) ​

参数 username: string 为完整账号,size: number 为 64–4096 的整数像素尺寸。

返回: Promise<image.PixelMap>,二维码图片。

生成二维码卡片:PopoUI.createQRCodeCard(...) ​

参数 qrCode: image.PixelMap 为二维码,avatar: image.PixelMap | undefined 为可选头像,name: string 为显示名,footer: string 为卡片底部文字。

返回: Promise<image.PixelMap>,合成后的卡片图片。

分享文本:PopoShareItem.text(value) ​

参数 value: string 为文本。

返回: PopoShareItem,kind=text,text 为输入内容。

分享文件:PopoShareItem.file(...) ​

参数类型必填说明
kindPopoShareKind是image、video 或 file。
pathstring是可读取的本地文件路径。
fileNamestring是展示文件名。
mimeTypestring是实际 MIME 类型。
thumbnailPathstring否本地封面路径。

返回: PopoShareItem,包含 kind、filePath、fileName、mimeType 和可选 thumbnailPath。

打开分享:PopoIM.openShare(items) ​

参数 items: PopoShareItem[] 为分享项。宿主根页面需承载 PopoSharePage。

返回: void。分享结束由 PopoSharePage.onFinished(error?: PopoError) 通知,无错误时 error 为 undefined。

关闭分享:PopoIM.closeShare() ​

无参数。

返回: void,关闭 SDK 分享状态。

诊断请求头:PopoIM.clientRequestHeaders(context) ​

参数 context: common.Context。

返回: Promise<Record<string, string>>,客户端设备与版本诊断请求头,不包含认证 Token。

根页面参数 ​

页面参数类型与说明
PopoConversationPageonNavigationChanged(insideConversation: boolean) => void;告知宿主是否处于根页内部导航中。
PopoConversationPagetabBarCoverHeight可选 number,宿主 TabBar 高度,用于进入聊天过程的界面衔接。
PopoContactPageactive可选 boolean,当前通讯录根页是否激活。
PopoContactPageonNavigationChanged(insideContact: boolean) => void;用于协调宿主底部导航。
PopoSharePageonFinished(error?: PopoError) => void;分享流程结束回调。
PopoCallPage无承载 SDK 通话界面。

这些 ArkUI 组件渲染界面,不返回业务数据。具体承载方式见接入指南。