RecvNewMsgCallback 监听接收所有类型消息(文本、自定义、富媒体消息)。AddRecvNewMsgCallback 设置事件监听器。RecvNewMsgCallback 回调,在其中接收文本消息。RemoveRecvNewMsgCallback 移除监听。该步骤不是必须的,客户可以按照业务需求调用。TencentIMSDK.AddRecvNewMsgCallback((List<Message> messages, string user_data)=>{foreach(Message message in messages){foreach (Elem elem in message.message_elem_array){// 有下一个消息if (elem.elem_type == TIMElemType.kTIMElem_Text){string text = elem.text_elem_content;}}}})
AddRecvNewMsgCallback 设置事件监听器。RecvNewMsgCallback 回调,在其中接收自定义消息。RemoveRecvNewMsgCallback 移除监听。该步骤不是必须的,客户可以按照业务需求调用。TencentIMSDK.AddRecvNewMsgCallback((List<Message> messages, string user_data)=>{foreach(Message message in messages){foreach (Elem elem in message.message_elem_array){// 有下一个消息if (elem.elem_type == TIMElemType.kTIMElem_Custom){string data = elem.custom_elem_data;string desc = elem.custom_elem_desc;string ext = elem.custom_elem_ext;}}}})
AddRecvNewMsgCallback 设置事件监听器。RecvNewMsgCallback 回调,在其中接收自定义消息。RemoveRecvNewMsgCallback 移除监听。该步骤不是必须的,客户可以按照业务需求调用。TencentIMSDK.AddRecvNewMsgCallback((List<Message> messages, string user_data)=>{foreach(Message message in messages){foreach (Elem elem in message.message_elem_array){// 有下一个消息if (elem.elem_type == TIMElemType.kTIMElem_Image){string path = elem.image_elem_orig_path; // 图片上传时的路径,消息发送者才会有这个字段,消息发送者可用这个字段将图片预先上屏,优化上屏体验。switch(elem.image_elem_level){case TIMImageLevel.kTIMImageLevel_Orig: // 原图发送{string id = elem.image_elem_orig_id;int h = elem.image_elem_orig_pic_height;int w = elem.image_elem_orig_pic_width;int size = elem.image_elem_orig_pic_size;string url = elem.image_elem_orig_url;break;}case TIMImageLevel.kTIMImageLevel_HD: // 高清图发送(图片较大){string id = elem.image_elem_large_id;int h = elem.image_elem_large_pic_height;int w = elem.image_elem_large_pic_width;int size = elem.image_elem_large_pic_size;string url = elem.image_elem_large_url;break;}case TIMImageLevel.kTIMImageLevel_Compression: // 高压缩率图发送(图片较小,默认值){string id = elem.image_elem_thumb_id;int h = elem.image_elem_orig_thumb_height;int w = elem.image_elem_orig_thumb_width;int size = elem.image_elem_orig_thumb_size;string url = elem.image_elem_thumb_url;break;}}}}}})
TencentIMSDK.AddRecvNewMsgCallback((List<Message> messages, string user_data)=>{foreach(Message message in messages){foreach (Elem elem in message.message_elem_array){// 有下一个消息if (elem.elem_type == TIMElemType.kTIMElem_Video){// 解析视频消息属性,封面、播放地址、宽高、大小等。string type = elem.video_elem_video_type;int size = elem.video_elem_video_size;int duration = elem.video_elem_video_duration;string path = elem.video_elem_video_path;string url = elem.video_elem_video_url;int imageType = elem.video_elem_image_type;int imageSize = elem.video_elem_image_size;int w = elem.video_elem_image_width;int h = elem.video_elem_image_height;string imagePath = elem.video_elem_image_path;string url = elem.video_elem_image_url;}}}})
TencentIMSDK.AddRecvNewMsgCallback((List<Message> messages, string user_data)=>{foreach(Message message in messages){foreach (Elem elem in message.message_elem_array){// 有下一个消息if (elem.elem_type == TIMElemType.kTIMElem_Sound){// 解析语音消息 播放地址,本地地址,大小,时长等。int size = elem.sound_elem_file_size;int duration = elem.sound_elem_file_time;string path = elem.sound_elem_file_path;string url = elem.sound_elem_url;}}}})
TencentIMSDK.AddRecvNewMsgCallback((List<Message> messages, string user_data)=>{foreach(Message message in messages){foreach (Elem elem in message.message_elem_array){// 有下一个消息if (elem.elem_type == TIMElemType.kTIMElem_File){// 解析文件消息 文件名、文件大小、url等。int size = elem.file_elem_file_size;string path = elem.file_elem_file_path;string name = elem.file_elem_file_name;string url = elem.file_elem_url;}}}})
TencentIMSDK.AddRecvNewMsgCallback((List<Message> messages, string user_data)=>{foreach(Message message in messages){foreach (Elem elem in message.message_elem_array){// 有下一个消息if (elem.elem_type == TIMElemType.kTIMElem_Location){// 解析地理位置消息,经纬度、描述等。double longitude = elem.location_elem_longitude;double latitude = elem.location_elem_latitude;string desc = elem.location_elem_desc;}}}})
index 和 data 的内容由客户自定义。TencentIMSDK.AddRecvNewMsgCallback((List<Message> messages, string user_data)=>{foreach(Message message in messages){foreach (Elem elem in message.message_elem_array){// 有下一个消息if (elem.elem_type == TIMElemType.kTIMElem_Face){string data = elem.face_elem_buf;int index = elem.face_elem_index;}}}})
GroupTipsElem 中的各个字段group_tips_elem_tip_type 判断这个 tips 消息是什么类型kTIMGroupTip_GroupInfoChange,表示这是个群资料变更通知。
接收方可以从 group_tips_elem_op_user_info 中获取到操作者信息,再从 group_tips_elem_group_change_info_array 获取到修改后的群名称。
此时,接收方可以将 “操作者” 和 “修改后的群名称” 组装起来,构造出一条群提示。例如 “alice 修改了群名称为 group123”。if(tip.group_tips_elem_tip_type == TIMGroupTipType.kTIMGroupTip_GroupInfoChange){tip.group_tips_elem_group_id; // 所属群组message.group_tips_elem_tip_type; // 群Tips类型message.group_tips_elem_op_user_info; // 操作人资料message.group_tips_elem_changed_user_info_array; // 被操作人资料message.group_tips_elem_group_change_info_array; // 群信息变更详情message.group_tips_elem_member_change_info_array; // 群成员变更信息}
TencentIMSDK.SetMsgElemUploadProgressCallback((Message message, int index, int cur_size, int total_size, string user_data)=>{// message 当前正在发送的消息实例// index 当前正在上传的文件序号// cur_size 当前正在上传的文件大小MB// total_size 当前正在上传的文件总大小})
foreach (Elem elem in message.message_elem_array) {// 有下一个消息}
文档反馈