离线消息

离线消息总数

  • 用户登录以后,应该首先获取自己的云通讯服务端的离线条数,具体代码如下:                                       
  • /**
  •  @该通知回调接口在代理类里面
  •  @brief 离线消息数
  •  @param count 消息数
  •  */
  • -(void) onOfflineMessageCount:(NSUInteger)count{
  •     NSLog(@"onOfflineMessageCount =%lu",count);
  • }                                               
         

设置离线消息数       

  • 根据总的离线条数,决定获取多少条离线消息,具体代码如下:                                       
  • /**
  •  @该通知回调接口在代理类里面
  •  @brief 需要获取的消息数
  •  @return 消息数 -1:全部获取 0:不获取
  •  */
  • -(NSInteger) onGetOfflineMessage{
  •     return -1;
  • }                    
                         

接收离线消息

  • 离线消息的接收,具体代码如下:
  • /**
  •  @该通知回调接口在代理类里面
  •  @brief 接收离线消息代理函数
  •  @param message 接收的消息
  •  */
  • -(void)onReceiveOfflineMessage:(ECMessage*)message {NSLog:(@"收到%@的消息,属于%@会话", message.from, message.sessionId);switch(message.messageBody.messageBodyType){
  •    case MessageBodyType_Text:{
  •      ECTextMessageBody *msgBody = (ECTextMessageBody *)message.messageBody;
  •      NSLog(@"收到的是文本消息------%@,msgBody.text");
  •      break;
  •    }
  •    case MessageBodyType_Voice:{
  •      ECVoiceMessageBody *msgBody = (ECVoiceMessageBody *)message.messageBody;
  •      NSLog(@"音频文件remote路径------%@",msgBody. remotePath);
  •      break;
  •    }

  •    case MessageBodyType_Video:{
  •      ECVideoMessageBody *msgBody = (ECVideoMessageBody *)message.messageBody;
  •      NSLog(@"视频文件remote路径------%@",msgBody. remotePath);
  •      break;
  •    }

  •    case MessageBodyType_Image:{
  •      ECImageMessageBody *msgBody = (ECImageMessageBody *)message.messageBody;
  •      NSLog(@"图片文件remote路径------%@",msgBody. remotePath);
  •      NSLog(@"缩略图片文件remote路径------%@",msgBody. thumbnailRemotePath);
  •      break;
  •    }

  •    case MessageBodyType_File:{
  •      ECFileMessageBody *msgBody = (ECFileMessageBody *)message.messageBody;
  •      NSLog(@"文件remote路径------%@",msgBody. remotePath);
  •      break;
  •    }
  •    default:
  •      break;
  •    }
  • }
                                             

离线消息接收结果                                        

  • /**
  •  @该通知回调接口在代理类里面
  •  @brief 离线消息接收是否完成
  •  @param isCompletion YES:拉取完成 NO:拉取未完成(拉取消息失败)
  •  */
  • -(void)onReceiveOfflineCompletion:(BOOL)isCompletion {
  •    //离线消息接收完成
  • }                             
                

离线消息角标数显示                                    

  • /**
  •  @brief 设置角标数
  •  @param badgeNumber 角标数字
  •  @param completion 执行结果回调block
  •  */
  • -(void)setAppleBadgeNumber:(NSInteger)badgeNumber completion:(void(^)(ECError* error)) completion;