You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS端Agora Flexible Classroom聊天模块发送按钮回调获取咨询

解决iOS Agora Flexible Classroom聊天模块发送回调问题

要获取聊天模块发送按钮的回调并对接Socket.io,你可以通过以下两种常用方法实现:

方法一:继承官方聊天控制器并重写onSendMessage

Agora Flexible Classroom的聊天模块核心类通常是AgoraClassroomChatViewController(不同版本类名可能略有差异,可结合官方文档确认),通过继承该类并重写发送方法,即可在保留原有功能的同时添加自定义逻辑:

Objective-C 示例

#import <AgoraFlexibleClassroom/AgoraFlexibleClassroom.h>

@interface CustomChatVC : AgoraClassroomChatViewController
@end

@implementation CustomChatVC

- (void)onSendMessage:(AgoraChatMessage *)message {
    // 先调用父类方法,确保原生聊天功能正常运行
    [super onSendMessage:message];
    
    // 这里添加Socket.io消息发送逻辑
    NSString *chatContent = message.content;
    // 替换为你的Socket.io发送代码
    // [self.socketClient emit:@"class_chat" withItems:@[chatContent]];
}

@end

Swift 示例

import AgoraFlexibleClassroom

class CustomChatVC: AgoraClassroomChatViewController {
    override func onSendMessage(_ message: AgoraChatMessage) {
        super.onSendMessage(message)
        
        // 对接Socket.io的逻辑
        let chatContent = message.content
        // socketClient.emit("class_chat", chatContent)
    }
}

关键注意:需要在初始化Flexible Classroom时,指定使用你的自定义聊天控制器替换默认组件,具体可参考Agora Classroom的初始化配置文档调整组件注册逻辑。

方法二:通过消息监听获取发送回调

如果不想继承控制器,也可以通过AgoraChat的消息监听机制捕获发送事件:

Objective-C 示例

// 在合适的位置(如教室初始化完成后)注册监听
[[AgoraChatClient sharedClient].chatManager addMessageListener:self delegateQueue:nil];

// 实现AgoraChatManagerDelegate协议方法
- (void)messagesDidSend:(NSArray<AgoraChatMessage *> *)aMessages {
    for (AgoraChatMessage *msg in aMessages) {
        // 发送消息到Socket.io
        // [self.socketClient emit:@"class_chat" withItems:@[msg.content]];
    }
}

Swift 示例

// 注册监听
AgoraChatClient.shared().chatManager.add(self, delegateQueue: nil)

// 实现协议方法
extension YourClassroomVC: AgoraChatManagerDelegate {
    func messagesDidSend(_ aMessages: [AgoraChatMessage]) {
        aMessages.forEach { msg in
            socketClient.emit("class_chat", msg.content)
        }
    }
}

注意:使用该方法时,需确保已正确初始化AgoraChat客户端,且当前类已遵循AgoraChatManagerDelegate协议。

内容的提问来源于stack exchange,提问作者Mohsen Fard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 12:33:25