跳转到正文

SDK 总览 ​

Popo IM SDK 将会话、通讯录、好友与群聊、消息和实时连接接入现有应用。宿主保留自己的登录、账号资料和主导航;SDK 提供完整聊天界面,负责消息同步与内部页面流转。

选择平台 ​

平台UI 接入方式环境基线
Web / H5完整工作台,嵌入容器或浮层现代浏览器;构建需要 Node.js 22.12+
Android会话、通讯录两个 AndroidX FragmentAndroid 5.0 / API 21+;源码工程 compileSdk 35、JDK 17
iOS会话、通讯录两个 UIKit ControlleriOS 15+;Swift 5,SwiftPM 工具版本 5.9+
HarmonyOS会话、通讯录两个 ArkUI 页面HarmonyOS NEXT 5.0 / API 12+;手机
uni-app会话、通讯录两个页面,可作为 Tab 根页HBuilderX 4.51+;Vue 2 / Vue 3;Android App、iOS App

各端均提供单聊、群聊、文字、图片、语音、视频、文件、名片、搜索和二维码等界面。入口是否显示、媒体大小及通话权限由服务端配置决定;群通话不在当前支持范围。uni-app 的原生通话还需要宿主接入媒体插件与展示页,详见该平台说明。

一次接入的顺序 ​

  1. 部署 Popo IM 服务,确认 HTTPS 与 WebSocket 可用。
  2. 阅读认证与 Token,让宿主后端为当前登录用户取得 IM 凭证。
  3. 加入对应平台模块,初始化一次并配置 authProvider。
  4. 挂载 SDK 界面,调用 login(),等待首次同步完成。
  5. 使用两个账号验证收发、未读、退出和切换账号。

初始化只配置 SDK,不代表用户已经登录。各平台的 login() 均在取得凭证并从服务器完成首次同步后才报告成功;可选的 restoreCachedSession 用于提前展示当前账号缓存,也不等于登录成功。

宿主与 SDK 的分工 ​

宿主负责SDK 负责
登录、注册、修改密码与宿主登录态IM Bearer Token 的使用与续期
向宿主后端请求 IM 凭证/app/sdk/* 业务请求与 WebSocket
账号资料的保存与更新、个人中心会话、通讯录、好友、群与聊天内部页面
根标签、应用导航、系统权限及推送接入消息同步、历史分页、已读与 SDK 未读计数
将 SDK 未读与其他业务未读汇总展示账号隔离的本地数据与媒体缓存

宿主通过公开入口打开会话,不需要读取 SDK 内部状态或自行拼接聊天页路径。发送消息、修改关系、建群等常规操作由 SDK 界面完成;公开宿主 API 不等于内部所有实现类。

统一的身份约定 ​

  • 用户 ID 是宿主稳定、大小写敏感的字符串,例如 chenyue;不能使用每次登录都会变化的会话标识。
  • 打开单聊传宿主用户 ID;打开群聊传公开群 ID。它们均不是内部 conversation_id。
  • Provider 返回当前用户资料、token 和 Unix 秒级 expireAt,用户 ID 与到期时间必须与 Token 一致。
  • SDK 未读分为 conversation(未设免打扰的消息)与 contact(待处理申请)。原生及 uni-app 的数值 100 表示界面展示 99+。
  • HTTP JSON 使用 user_id、expire_at 等字段;宿主 SDK 模型采用所在语言的命名方式,只在认证适配处转换。

接入验收 ​

发布前至少完成一次完整流程:陈悦登录后与林舟互发消息,进入聊天清除未读;切到后台再返回,确认新消息补齐;断网时保留可读内容,联网后恢复;退出后不再接收旧账号数据,切换账号后只显示新身份内容。

图片、语音、视频和通话还需在目标浏览器或真机验证权限拒绝、取消操作与重新进入。编译通过不能替代这些交互验证。

方法与参数 ​

接入步骤用于先把 SDK 跑起来;下面的参考逐个解释宿主可以调用的方法,以及输入参数、返回值和完成回调。