消息免打扰

更新时间: 2024/05/31 16:04:20

NetEase IM SDK(以下简称 NIM SDK)支持消息免打扰功能,即关闭消息通知和提醒。

本文介绍如何通过 NIM SDK 实现单聊和群聊消息免打扰功能。

单聊消息免打扰

注册单聊消息免打扰监听

Android/iOS/Windows/macOS

在进行单聊消息免打扰模式设置前,您可以调用 addSettingListener 注册监听单聊消息免打扰模式变更事件。监听后,在单聊消息免打扰模式变更时,会收到对应的通知。

Android
javaNIMClient.getService(V2NIMSettingService.class).addSettingListener(new V2NIMSettingListener() {

    @Override
    public void onP2PMessageMuteModeChanged(String accountId, V2NIMP2PMessageMuteMode muteMode) {

    }
});
iOS
objective-c[[[NIMSDK sharedSDK] v2SettingService] addSettingListener:self];
macOS/Windows
cppV2NIMTeamListener listener;
listener.onP2PMessageMuteModeChanged = [](std::string accountId, V2NIMP2PMessageMuteMode muteMode) {
    // handle p2p message mute mode changed
};
settingService.addSettingListener(listener);

Web/uni-app/小程序/Harmony

在进行单聊消息免打扰模式设置前,您可以调用on("EventName") 注册监听单聊消息免打扰模式变更事件。监听后,在单聊消息免打扰模式变更时,会收到对应的通知。

Web/uni-app/小程序
typescriptnim.V2NIMSettingService.on("onP2PMessageMuteModeChanged", function (accountId: string, muteMode: V2NIMP2PMessageMuteMode)
Harmony
typescriptnim.settingService.on('onP2PMessageMuteModeChanged', (accountId: string, muteMode: V2NIMP2PMessageMuteMode) => {})

设置单聊消息免打扰模式

通过调用 setP2PMessageMuteMode 方法来设置单聊消息免打扰模式。

  • 参数说明
Android
参数名称 类型 是否必填 默认值 描述
accountId String - 聊天对象用户账号,不可为空,否则返回 191004 参数错误。
muteMode V2NIMP2PMessageMuteMode - 消息免打扰模式:免打扰开启或免打扰关闭
success V2NIMSuccessCallback - 设置成功回调
failure V2NIMFailureCallback - 设置失败回调,返回错误码
iOS
参数名称 类型 是否必填 默认值 描述
accountId NSString * - 聊天对象用户账号,不可为空,否则返回 191004 参数错误。
muteMode V2NIMP2PMessageMuteMode - 消息免打扰模式:免打扰开启或免打扰关闭
success V2NIMSuccessCallback - 设置成功回调
failure V2NIMFailureCallback - 设置失败回调,返回错误码
macOS/Windows
参数名称 类型 是否必填 默认值 描述
accountId std::string - 聊天对象用户账号,不可为空,否则返回 191004 参数错误。
muteMode V2NIMP2PMessageMuteMode - 消息免打扰模式:免打扰开启或免打扰关闭
success V2NIMSuccessCallback - 设置成功回调
failure V2NIMFailureCallback - 设置失败回调,返回错误码
Web/uni-app/小程序
参数名称 类型 是否必填 默认值 描述
accountId string - 聊天对象用户账号,不可为空,否则返回 191004 参数错误。
muteMode V2NIMP2PMessageMuteMode - 消息免打扰模式:免打扰开启或免打扰关闭
Harmony
参数名称 类型 是否必填 默认值 描述
accountId string - 聊天对象用户账号,不可为空,否则返回 191004 参数错误。
muteMode V2NIMP2PMessageMuteMode - 消息免打扰模式:免打扰开启或免打扰关闭
  • 示例代码
Android
javaNIMClient.getService(V2NIMSettingService.class).setP2PMessageMuteMode(accountId, muteMode,
new V2NIMSuccessCallback<Void>() {
    @Override
    public void onSuccess(Void unused) {

    }
},
new V2NIMFailureCallback() {
    @Override
    public void onFailure(V2NIMError error) {
        
    }
});
iOS
objective-c[[[NIMSDK sharedSDK] v2SettingService] setP2PMessageMuteMode:@"accountId" muteMode:V2NIM_P2P_MESSAGE_MUTE_MODE_OFF success:^{
        // 成功回调
    } failure:^(V2NIMError * _Nonnull error) {
        // 失败回调
    }];
macOS/Windows
cppsettingService.setP2PMessageMuteMode(
    "accountId",
    V2NIM_P2P_MESSAGE_MUTE_MODE_ON,
    []() {
        // set p2p mute mode succeeded
    },
    [](V2NIMError error) {
        // set p2p mute mode failed, handle error
    });
Web/uni-app/小程序
typescriptnim.V2NIMSettingService.setP2PMessageMuteMode('accountId', 1)
Harmony
typescriptawait nim.settingService.setP2PMessageMuteMode('accountId', V2NIMP2PMessageMuteMode.V2NIM_P2P_MESSAGE_MUTE_MODE_ON)

获取单聊消息免打扰状态

通过调用 getP2PMessageMuteMode 方法获取指定聊天对象的单聊会话免打扰状态。

  • 参数说明
Android
参数名称 类型 是否必填 默认值 描述
accountId String - 聊天对象用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。
iOS
参数名称 类型 是否必填 默认值 描述
accountId NSString * - 聊天对象用户账号,不如果为空、不合法、不存在,则返回 191004 参数错误。
macOS/Windows
参数名称 类型 是否必填 默认值 描述
accountId nstd::string - 聊天对象用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。
Web/uni-app/小程序
参数名称 类型 是否必填 默认值 描述
accountId string - 聊天对象用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。
Harmony
参数名称 类型 是否必填 默认值 描述
accountId string - 聊天对象用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。
  • 示例代码
Android
javaV2NIMP2PMessageMuteMode muteMode = NIMClient.getService(V2NIMSettingService.class).getP2PMessageMuteMode(accountId);
iOS
objective-c[[[NIMSDK sharedSDK] v2SettingService] getP2PMessageMuteMode:@"accountId"];
macOS/Windows
cppauto muteMode = settingService.getP2PMessageMuteMode("accountId");
Web/uni-app/小程序
typescriptconst mode = nim.V2NIMSettingService.getP2PMessageMuteMode('accountId')
Harmony
typescriptconst mode = await nim.settingService.getP2PMessageMuteMode('accountId')

群聊消息免打扰

请参见群消息管理

获取会话消息免打扰状态

通过调用同步方法 getConversationMuteStatus 获取指定会话的免打扰状态。

如果该方法返回值不满足界面显示需求,可以调用 getP2PMessageMuteModegetTeamMessageMuteMode 方法获取单聊或群聊消息的具体免打扰模式。

Android
javaboolean isMute = NIMClient.getService(V2NIMSettingService.class).getConversationMuteStatus(conversationId);
iOS
objective-c[[NIMSDK sharedSDK] v2SettingService] getConversationMuteStatus:@"conversationId"];
macOS/Windows
cppauto mute = settingService.getConversationMuteStatus(conversationId);
Web/uni-app/小程序
typescriptnim.V2NIMSettingService.getConversationMuteStatus('sender|1|receiver')
Harmony
typescriptawait nim.settingService.getConversationMuteStatus('sender|1|receiver')
此文档是否对你有帮助?
有帮助
去反馈
  • 单聊消息免打扰
  • 注册单聊消息免打扰监听
  • 设置单聊消息免打扰模式
  • 获取单聊消息免打扰状态
  • 群聊消息免打扰
  • 获取会话消息免打扰状态