融云 IM 干货丨消息被拦截后,各平台客户端如何处理被拦截消息的状态 2个月前

根据搜索结果,各平台客户端处理被拦截消息的状态主要涉及以下几个步骤:

  1. 开通功能:首先需要开通相关功能,以便客户端能够感知到消息被拦截。此功能不会额外收费。

  2. 设置敏感信息拦截监听器:在客户端,需要设置敏感信息拦截监听器,被拦截的消息信息会在此监听器中回调。

  3. 获取被拦截消息的详细信息:通过调用特定的方法(如io.rong.imlib.RongCoreClient#getMessageByUid)获取被拦截消息的详细信息,包括消息的唯一ID(Uid)。

  4. 修改消息状态:根据获取到的被拦截消息的详细信息,可以调用相应的方法修改消息状态为发送失败。对于包含UI集成的客户端,可以调用io.rong.imkit.IMCenter#setMessageSentStatus方法;对于不包含UI集成的客户端,则调用io.rong.imlib.RongCoreClient#setMessageSentStatus方法。

  5. iOS端处理:iOS端也需要设置敏感信息拦截监听器,并在对应的回调方法中实现修改消息状态的逻辑。例如,通过RCCoreClient sharedCoreClient获取被拦截的消息,并调用setMessageSentStatus方法修改消息的发送状态。

  6. 消息状态修改代码示例:以下是Android端和iOS端修改消息状态的代码示例:

    • Android端:
      message.setSentStatus(SentStatus.FAILED);
      IMCenter.getInstance().setMessageSentStatus(message, null);
      RongCoreClient.getInstance().setMessageSentStatus(message, null);
      
    • iOS端:
      - (void)messageDidBlock:(RCBlockedMessageInfo *)blockedMessageInfo {
          RCMessage *blockMessage = [[RCCoreClient sharedCoreClient] getMessageByUId:blockedMessageInfo.blockedMsgUId];
          [[RCCoreClient sharedCoreClient] setMessageSentStatus:blockMessage.messageId sentStatus:SentStatus_FAILED completion:^(BOOL ret) {
              // UI刷新处理
          }];
      }
      
      这些步骤和代码示例提供了一个基本的框架,用于在不同平台的客户端中处理被拦截消息的状态。
嘻嘻嘻嘻嘻
盐于律己,甜以待人。
3
发布数
1
关注者
2202
累计阅读

热门教程文档

React
18小节
Dart
35小节
MyBatis
19小节
Rust
84小节
PHP
52小节