网页
综合
更新时间 2026-11-13 20:01:48
iOS 进阶控制 | 泡泡 IM 开发文档
自动蜘蛛
www.popoim.com
正文约 2300 字
本页按需查阅,首次接入不需要把这些方法全部实现。 按快速接入完成配置、页面和登录后,SDK 已经处理常用的聊天界面、消息收发、好友与群管理、同步等流程。只有想从商品页直接打开聊天、把未读数放到自己的导航栏、同步头像昵称,或接入本页列出的平台能力时,才需要额外调用相应方法。
除 clientRequestHeaders() 外,PopoIM 的宿主操作在 MainActor(用于安全更新界面的主执行环境)调用。用户、认证、目标、未读与错误字段见 SDK 对象说明。
下文优先展示 async 方法。同名 completion 版本也可使用:结果通过 completion(error: PopoError?) 返回,nil 表示成功。取消一个 Swift Task 只会取消当前调用方的等待,需要退出共享登录状态时仍调用 logout()。
“方法”是 SDK 提供给你调用的操作;“参数”是调用时要填写的信息;“返回值”是操作交回的结果。“回调”或“监听”表示操作完成或数据变化时,SDK 调用你提供的函数通知你。只订阅需要的数据,在所属页面结束时解除监听。
下面是两种常见的业务联动,选需要的使用即可。调用前应已完成快速接入并登录;例子里的用户和群 ID 要换成真实、当前账号有权访问的目标。
例如在客户资料页点击“发消息”时,在 @MainActor 的异步函数中执行:
navigationController 是当前页面使用的导航控制器;打开群聊改用 try .group("6655312956")。SDK 将聊天页放入传入的导航栈;如果要在另一个标签里打开,先由你的应用选中该标签。用 do/catch 处理失败并通过产品的通用 Toast 展示错误。
renderUnread 是你自己的角标展示函数。conversation 是消息未读总数,contact 是待处理申请数;用当前值替换角标,不要累加,数值 100 显示为 99+。闭包中用到页面对象时使用弱引用,避免页面无法释放。
保存返回的 observer,在所属页面结束时移除:
把服务地址与取凭证函数组合成配置,供初始化时使用。
返回: PopoConfig。这里创建配置,初始化时才检查并使用。
在应用启动时登记 SDK 配置。它为后续登录做准备,不会替用户登录你的产品。
参数 config: PopoConfig。
返回: Void;配置无效等情况 throw PopoError。每个进程初始化一次,之后调用 login。
在你的用户登录成功后获取 IM 凭证并加载聊天数据,让该账号可以开始聊天。主动调用可切换账号,调用前先更新取凭证函数的身份来源;自动续期只保持原账号,不用于切换身份。
无参数,调用 authProvider 完成认证和首次同步。
返回: async throws Void;正常完成没有额外数据,失败通过 throw 交付。回调版本为 login(completion:)。
让用户启动应用时先看到上次保存在本机的聊天内容,减少等待。只能恢复你已确认身份的当前账号,之后仍需正常登录。
参数 user: PopoUser 为宿主确认的当前本机用户。
返回: async throws Void。恢复当前账号的可读缓存,不请求 Token 或网络;之后仍调用 login。回调版本增加 completion。
用户退出你的产品时同时结束 SDK 登录,避免继续接收旧账号数据。
参数 clearLocalData: Bool 表示是否同时清理当前账号本地数据。也可调用无参数 logout(),保留可恢复缓存。
返回: Void。用户退出宿主账号时通常传 true,并同时清理宿主登录态。
你的后端保存头像、昵称等资料后,用它让 SDK 使用当前账号的最新资料。
参数 user: PopoUser 为当前账号的新资料,不能用它切换身份。
返回: async throws Void;回调版本增加 completion。宿主统一管理资料时先在后端保存并同步,再更新 SDK。
用户点击你产品里的“发消息”或“联系客服”时,用它直接进入某个人或群的聊天页。
返回: async throws Void。正常完成表示聊天页已经打开,不代表对方已读。completion 版本使用相同参数并增加完成回调。
把 SDK 的消息和申请未读数显示到你自己的导航栏或角标中。
参数 listener: (PopoUnreadCount) -> Void 接收 conversation 和 contact 两个当前未读总数。
返回: PopoUnreadObserver。保留此对象,稍后用于取消监听。
所属页面结束时停止接收未读变化,避免页面已关闭仍被通知。
参数为添加时返回的 PopoUnreadObserver。
返回: Void。页面或宿主模块销毁时取消。
为你产品的“存储空间”页面读取当前媒体缓存大小。
返回: async Int64,媒体缓存字节数。回调版本通过 completion(bytes: Int64) 返回。
为你产品的“清理缓存”按钮清除可重新下载的媒体文件,保留聊天记录、草稿和待发送内容。
返回: async Int64,清理后剩余的媒体缓存字节数。回调版本通过 completion(bytes: Int64) 返回。
用户收到系统来电推送后,将通话 ID 交给 SDK 核对并处理,避免显示已经结束的来电。
参数 callID: String 为推送中的通话 ID。
本页为82搜索生成的网页快照,内容来自站内索引;演示数据的原文链接仅作示例。