浏览 SDKs · uni-app / uni-app x
平台
SDKsuni-app / uni-app x

设置全局消息接收方式

设置当前账号在全部会话中的默认消息接收与通知方式。

复制

globalRecvMsgOpt 是账号级默认策略,控制当前账号是否允许消息通知。它与昵称、头像等普通用户资料相互独立,应通过单独的设置项提交。

globalRecvMsgOpt 的类型为 OpenIMMessageReceiveOption。账号级设置使用以下两个有效值:

常量数值含义
OpenIMMessageReceiveOptionReceive0正常接收消息,并允许离线推送或通知。
OpenIMMessageReceiveOptionReceiveWithoutNotification2接收消息,但不触发离线推送或通知,即开启全天免打扰。
import {
  OpenIMMessageReceiveOptionReceiveWithoutNotification,
  setSelfInfo,
} from '@/uni_modules/unix-openim-sdk'

await setSelfInfo({
  globalRecvMsgOpt: OpenIMMessageReceiveOptionReceiveWithoutNotification,
})

使用 OpenIMMessageReceiveOptionReceive 表示关闭账号级免打扰,使用 OpenIMMessageReceiveOptionReceiveWithoutNotification 表示开启账号级全天免打扰。OpenIMMessageReceiveOptionDoNotReceive 是预留值,不应作为账号级设置选项展示。

单个会话的 recvMsgOpt 是更细粒度的设置。账号级与会话级设置同时存在时,客户端应展示 SDK 或服务端返回的最终会话状态,不要仅根据本地开关推断是否会收到通知。

Promise 成功表示设置请求完成,不等同于 onSelfInfoUpdated() 已到达。完整事件监听见更新当前用户资料;需要立即确认当前值时,重新调用获取当前用户资料