网页 综合 更新时间 2026-11-13 20:02:04

uni-app 进阶控制 | 泡泡 IM 开发文档

自动蜘蛛 www.popoim.com 正文约 2397 字
本页按需查阅,首次接入不需要把这些方法全部实现。 按快速接入完成配置、页面和登录后,SDK 已经处理常用的聊天界面、消息收发、好友与群管理、同步等流程。只有想从商品页直接打开聊天、把未读数放到自己的导航栏、同步头像昵称,或接入本页列出的平台能力时,才需要额外调用相应方法。uni-app 的一对一语音/视频通话还需要你接入原生媒体插件与通话展示页;语音消息、视频消息不需要实现通话页。
从 @/uni_modules/popo-im-sdk/js_sdk/index.js 导入 PopoIM。模块、页面和生命周期的接入步骤见 uni-app 快速接入。用户、认证、会话目标、未读和错误字段见 SDK 对象说明。
Promise<void> 正常完成没有额外数据;失败进入 catch。返回 Unsubscribe 的方法会给出一个函数,调用即可解除本次监听。
“方法”是 SDK 提供给你调用的操作;“参数”是调用时要填写的信息;“返回值”是操作交回的结果。“回调”或“监听”表示操作完成或数据变化时,SDK 调用你提供的函数通知你。只订阅需要的数据,在所属页面结束时解除监听。
下面是两种常见的业务联动,选需要的使用即可。调用前应已完成快速接入并登录;例子里的用户和群 ID 要换成真实、当前账号有权访问的目标。JavaScript 中的 await 放在 async 函数内执行。
例如在客户资料页点击“发消息”时,在异步函数中执行:
id 使用你系统里的用户 ID 或公开群 ID,不填昵称,也不填内部 conversation_id。需要跳到某条历史消息时再传 messageId,它来自服务器返回的消息 ID。用 try/catch 处理失败并通过产品的通用 Toast 展示错误。
renderUnread 是你自己的角标展示函数。conversation 是消息未读总数,contact 是待处理申请数;用当前值替换角标,不要累加,数值 100 显示为 99+。
保存返回的 stopUnread,在所属页面卸载时调用:
在应用启动时登记 SDK 配置。它为后续登录做准备,不会替用户登录你的产品。
返回: void,只检查并登记配置,不开始网络登录。配置错误同步抛出 PopoError。
在你的用户登录成功后获取 IM 凭证并加载聊天数据,让该账号可以开始聊天。主动调用可切换账号,调用前先更新取凭证函数的身份来源;自动续期只保持原账号,不用于切换身份。
返回: Promise<void>,在认证和首次同步完成后正常完成。切换账号前先更新宿主 Provider 的身份来源。
让用户启动应用时先看到上次保存在本机的聊天内容,减少等待。只能恢复你已确认身份的当前账号,之后仍需正常登录。
参数 user: PopoUser 为宿主确认的当前本机用户。
返回: Promise<PopoCachedRestoreResult>,包含 restored:boolean(是否恢复到缓存)、user:PopoUser(当前资料)、deviceId:string(本机设备标识)。不获取 IM 凭证,不表示已经在线,之后仍调用 login。
恢复指定账号的本机离线阅读状态,适用于需要自行安排缓存加载过程的应用。
返回: Promise<PopoOfflineRestoreResult>,包含 restored:boolean 和 user:PopoUser。需要启动时预热缓存的宿主通常使用 restoreCachedSession,不必把两个恢复入口连续调用一遍。
用户退出你的产品时同时结束 SDK 登录,避免继续接收旧账号数据。
可选参数 clearLocalData:boolean 表示是否清理当前账号本地数据,默认 false。
返回: void。用户明确退出宿主账号时通常传 true。
你的后端保存头像、昵称等资料后,用它让 SDK 使用当前账号的最新资料。
参数 user: PopoUser 为当前账号新资料。
返回: Promise<PopoUser>,更新后的用户资料。字段见 SDK 对象说明,不能用此方法切换账号身份。
读取当前账号及登录进度,供自己的界面判断是否可以继续聊天操作。这里的“会话状态”指 SDK 登录状态。
返回: PopoSessionState,字段见本页下方。不要直接修改这个对象。
用户点击你产品里的“发消息”或“联系客服”时,用它直接进入某个人或群的聊天页。
返回: Promise<void>,完成表示导航成功,不表示对方已读。
把 SDK 的消息和申请未读数显示到你自己的导航栏或角标中。
参数 listener:(count:PopoUnreadCount)=>void,count 包含 conversation、contact 两个当前未读总数。
返回: Unsubscribe。宿主页面卸载时调用返回函数即可解除监听。
所属页面结束时停止接收未读变化,避免页面已关闭仍被通知。
参数为添加时使用的同一个 listener 函数。
返回: void。也可以调用 addUnreadListener 返回的解除函数,二选一即可。
让聊天界面与产品选择的浅色或深色外观一致。
参数 theme:'light'|'dark' 为宿主选定的浅色或深色主题。
返回: PopoUiAppearance,包含 theme 和 className,className 为 popo-ui--light 或 popo-ui--dark。
读取 SDK 当前的外观设置,用于同步你自己的界面。
返回: 当前 PopoUiAppearance,字段同设置主题。
在 SDK 外观变化时通知你的页面,适合让原生导航栏等区域一起切换颜色。
访问原文 返回搜索 https://www.popoim.com/developers/sdk/uniapp-api
本页为82搜索生成的网页快照,内容来自站内索引;演示数据的原文链接仅作示例。