SDKsFlutter
订阅用户在线状态
使用 Flutter SDK 订阅指定用户的在线状态。
批量订阅指定目标用户的实时在线状态,并拉取当前状态快照:
参数说明
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
userIDs | List<String> | 是 | 待订阅在线状态的目标用户 ID 列表。建议过滤空值与重复项,只订阅当前界面可见范围内的用户。 |
final states = await OpenIM.iMManager.userManager.subscribeUsersStatus(
['user_a', 'user_b'],
);返回结果
Future 成功返回目标用户当前时刻的在线状态快照列表(List<UserStatusInfo>)。
每个 UserStatusInfo 包含以下核心字段:
userID:用户唯一标识,状态合并与更新的主键。status:在线状态数值。detailPlatformStatus:各端(iOS、Android、Web、Desktop 等)平台在线详情列表。
客户端应以 userID 为合并标识,将快照合并到本地在线状态缓存中。
监听在线状态变更
用户在线状态变更事件在此集中监听与处理。当已订阅用户的在线状态发生变化(上线、下线或平台状态改变)时,SDK 会通过 onUserStatusChanged 事件推送最新状态:
void handleUserStatusChanged(UserStatusInfo info) {
mergePresence(info);
}Flutter SDK 在 UserManager 中维护单个 OnUserListener 实例。请把上述处理函数统一配置在事件概览的应用级集中入口中。
当视图销毁或相关用户移出可见范围时,应及时调用取消用户状态订阅释放订阅配额。
这个页面有帮助吗?