腾讯撤回的消息在服务器吗,腾讯云IM消息撤回

一、业务场景

有的时候 发送一条消息可能 发现自己发送错误了,但消息又不送出去了,就可以使用这个功能

二、主工功能代码实现

实现这个功能首先要有一个发送消息

发送消息有以下几个状态,上代码解释:

/*

V2TIM_MSG_STATUS_SENDING = 1, ///< 消息发送中

V2TIM_MSG_STATUS_SEND_SUCC = 2, ///< 消息发送成功

V2TIM_MSG_STATUS_SEND_FAIL = 3, ///< 消息发送失败

V2TIM_MSG_STATUS_HAS_DELETED = 4, ///< 消息被删除

V2TIM_MSG_STATUS_LOCAL_REVOKED = 6, ///< 被撤销的消息

*/

如果消息撤回 在拉取消息的时候 V2TIMMessage 这个类中的 属性 status会发生变化。把消息过虑显示就行了。

这简单介绍以下几个功能

发送消息方法调用

拉取历史消息调用

撤回消息调用

直接上代码:

以下代码可以测试 消息撤回功能,可以直接把代码复制在DEMO中,验证。

发送消息

V2TIMMessage *msg= [[V2TIMManager sharedInstance] createTextMessage:@"999"];

[[V2TIMManager sharedInstance]sendMessage:msg receiver:@"66" groupID:nil priority:V2TIM_PRIORITY_DEFAULT onlineUserOnly:NO offlinePushInfo:Nil progress:nil succ:^{

NSLog(@"消息文本发送成功");

} fail:^(int code, NSString *desc) {

NSLog(@"文本消息发送失败---->%@",desc);

}] ;

拉取服务器上的历史消息

V2TIMMessageListGetOption *getinfo = [[V2TIMMessageListGetOption alloc]init];

getinfo.getType = V2TIM_GET_CLOUD_OLDER_MSG;

getinfo.userID = @"66";

getinfo.count = 10;

getinfo.lastMsg = nil;

[[V2TIMManager sharedInstance]getHistoryMessageList:getinfo succ:^(NSArray *msgs) {

for (int i = 0; i < msgs.count; i++) {

if (i == 0) {

self.message = [msgs objectAtIndex:i];

}

V2TIMMessage *mg = [msgs objectAtIndex:i];

[self readData:mg];

}

} fail:^(int code, NSString *desc) {

NSLog(@"---%d---message-->%@",code,desc);

}];

-(void)readData:(V2TIMMessage *)msg

{

/*

V2TIM_MSG_STATUS_SENDING = 1, ///< 消息发送中

V2TIM_MSG_STATUS_SEND_SUCC = 2, ///< 消息发送成功

V2TIM_MSG_STATUS_SEND_FAIL = 3, ///< 消息发送失败

V2TIM_MSG_STATUS_HAS_DELETED = 4, ///< 消息被删除

V2TIM_MSG_STATUS_LOCAL_REVOKED = 6, ///< 被撤销的消息

*/

if (msg.elemType == V2TIM_ELEM_TYPE_NONE) {

NSLog(@"未知消息-->%@",msg.textElem.text);

}else if (msg.elemType == V2TIM_ELEM_TYPE_TEXT){

NSLog(@"文本消-->%@----state---%ld",msg.textElem.text,(long)msg.status);

//status 跟据这个状态 来判断是否撤回

}else if (msg.elemType == V2TIM_ELEM_TYPE_CUSTOM){

NSString * str =[[NSString alloc] initWithData:msg.customElem.data encoding:NSUTF8StringEncoding];

NSLog(@"自定义消息--->>%@",str);

}else if (msg.elemType == V2TIM_ELEM_TYPE_IMAGE){

NSLog(@"图片消息%@",msg.imageElem.imageList);

}else if (msg.elemType == V2TIM_ELEM_TYPE_VIDEO){

NSLog(@"视频消息--->>%@",msg.videoElem.videoPath);

}else if (msg.elemType == V2TIM_ELEM_TYPE_FILE){

NSLog(@"文件消息---->>%@",msg.fileElem.path);

}else if (msg.elemType == V2TIM_ELEM_TYPE_LOCATION){

NSLog(@"地理位置消息---->>%@",msg.locationElem.desc);

}else if (msg.elemType == V2TIM_ELEM_TYPE_FACE){

NSLog(@"表情消息---->>%d",msg.faceElem.index);

}else if (msg.elemType == V2TIM_ELEM_TYPE_GROUP_TIPS){

NSLog(@"msg----%@",msg.groupTipsElem.groupID);

}

}

注意事项

源代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值