注册

到底怎么自定义消息?需要做发红包功能。。

官方说理论太多。能不能直接点。
 
我现在是自己建了一个money类继承EMMessage,
新建EMMoneyMessageBody遵守了IEMessageBody协议,但不知道
initWithChatObject:方法怎么写,环信这里没有开源。。

,然后根本就不能发。。。。,发的消息为空白,退出聊天界面再进来,刚刚的空白都不见了,,,,
 
+(instancetype)moneyMessageWithReceiver:(NSString *)receiver{

//构造body
EMMoneyMessageBody *body = [[EMMoneyMessageBody alloc] initWithChatObject:nil];

//构造消息
EMMoneyMessage *message = [[EMMoneyMessage alloc] initWithReceiver:receiver bodies:@[body]];

message.messageType = eMessageTypeGroupChat;

return message;
}
已邀请:
不是自定义消息,是发送扩展消息,设置消息的ext,将需要传的数据放在ext中,并自定义一个bubbleview去显示这些数据即可。
别用pod,直接把easeUI和sdk拖进工程,这样方便自定义
发红包的时候就用发送text的方法,ext字典里面自己定义数据和红包类型以区分不同的扩展信息,text文本可以根据你自己产品的需要写,比如产品要求在聊天list页面显示 红包信息时是 [收到红包],那你就传@"[收到红包]",ext里面定义的东西就是你和其他平台app同事定义一套自己的规则就好了
展示的时候在bubble里面自己定义一个红包的bubbleview,用autolayout写,创建Bubbleview的地方要所有text类型的地方都要去拆ext的内容,根据里面传的type判断是不是红包,再分别赋值等其他操作
 
//发送扩展消息
- (void)sendTextMessage:(NSString *)text withExt:(NSDictionary*)ext {
    EMMessage *message = [EaseSDKHelper sendTextMessage:text
                                                     to:self.conversation.conversationId
                                            messageType:EMChatTypeGroupChat
                                             messageExt:ext];

    [self _sendMessage:message];

}

- (void)_sendMessage:(EMMessage *)message {
    if (self.conversation.type == EMConversationTypeGroupChat) {
        message.chatType = EMChatTypeGroupChat;
    } else if (self.conversation.type == EMConversationTypeChatRoom) {
        message.chatType = EMChatTypeChatRoom;
    }

    [self addMessageToDataSource:message
                        progress:nil];

    __weak typeof(self) weakself = self;

    [[EMClient sharedClient].chatManager asyncSendMessage:message progress:nil completion:^(EMMessage *aMessage, EMError *aError) {
        [weakself.tableView reloadData];
    }];
}

要回复问题请先登录注册