You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

179 lines
3.9 KiB

//
// JCMessageChannelItem.h
// JCSDKOC
//
// Created by maikireton on 2017/8/11.
// Copyright © 2017年 juphoon. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "JCMessageChannelConstants.h"
/**
* @addtogroup 消息通道模块
* @{
*/
/**
* IM消息对象类
*/
@interface JCMessageChannelItem : NSObject
/**
* 消息唯一标识
*/
@property (nonatomic, readonly, copy) NSString* messageId;
/**
* 消息内容类型
*/
@property (nonatomic, readonly, copy) NSString* messageType;
/**
* 消息内容
*
* 包括文本和自定义消息体内容
*/
@property (nonatomic, readonly, copy) NSString* text;
/**
* 文件链接
*
* 可以通过 JCStorage 将文件上传至 Juphoon Cloud 平台来获取该地址,也可以从其他文件消息获取改地址
*/
@property (nonatomic, readonly, copy) NSString* fileUri;
/**
* 缩略图链接
*
* 可以通过 JCStorage 将文件上传至 Juphoon Cloud 平台来获取该地址,也可以从其他文件消息获取改地址
*/
@property (nonatomic, readonly, copy) NSString* thumbUri;
/**
* 文件大小
*/
@property (nonatomic, readonly) int fileSize;
/**
* 文件时长
* @note 语音,视频消息有效
*/
@property (nonatomic, readonly) int duration;
/**
* 自定义参数集
*/
@property (nonatomic, readonly, strong) NSDictionary* extraParams;
/**
* 消息对端用户标识
*/
@property (nonatomic, readonly, copy) NSString* userId;
/**
* 消息对端昵称
*/
@property (nonatomic, readonly, copy) NSString* displayName;
/**
* 群组标识,type 为 @ref JCMessageChannelTypeGroup 时有效
*/
@property (nonatomic, readonly, copy) NSString* groupId;
/**
* 发送或者接收时间,单位毫秒
*/
@property (nonatomic, readonly) long time;
/**
* 发送成功时间,单位毫秒,如果是收到消息则是服务器记录的该消息发送时间
*/
@property (nonatomic, readonly) long sentTime;
/**
* 消息传输方向,参见:
* - @ref JCMessageChannelItemDirectionSend : 发送
* - @ref JCMessageChannelItemDirectionReceive : 接收
*/
@property (nonatomic, readonly) JCMessageChannelItemDirection direction;
/**
* 返回是一对一消息还是群组消息
*
* - @ref JCMessageChannelType1To1 : 一对一消息
* - @ref JCMessageChannelTypeGroup : 群组消息
*/
@property (nonatomic, readonly) JCMessageChannelType type;
/**
* 消息状态:
* - @ref JCMessageChannelItemStateInit : 消息初始状态
* - @ref JCMessageChannelItemStateTransfering : 消息传输中状态
* - @ref JCMessageChannelItemStateOK : 消息成功状态
* - @ref JCMessageChannelItemStateFail : 消息失败状态
* - @ref JCMessageChannelItemStateArrived : 已送达
* - @ref JCMessageChannelItemStateReaded : 已读
* - @ref JCMessageChannelItemStateWithdrawal : 撤回
*/
@property (nonatomic, readonly) JCMessageChannelItemState state;
/**
* @ref JCMessageChannelReason "消息错误码"
*
* 当消息状态为 @ref JCMessageChannelItemStateFail 时有效
*/
@property (nonatomic, readonly) JCMessageChannelReason error;
/**
* 消息的服务器id
*/
@property (nonatomic, readonly) long serverMessageId;
/**
* cookie
*/
@property (nonatomic, strong) id cookie;
/**
* 会话 serverUid
*/
@property (nonatomic, strong) NSString* serverUid;
/**
* 消息发送者 uid
*/
@property (nonatomic, strong) NSString* senderUid;
/**
* 是否@我的,针对群聊
* - true: @我
* - false: 未@我
*/
@property (nonatomic) bool atMe;
/**
* 是否@所有人,针对群聊
* - true: @所有人
* - false: 未@所有人
*/
@property (nonatomic) bool atAll;
/**
* @的uid列表
*/
@property (nonatomic, strong) NSArray<NSString*>* atServerUidList;
/**
* 是否是撤回消息
* - true: 是撤回消息
* - false: 不是撤回消息
*/
@property (nonatomic) bool isWithdrawal;
/**
* 撤回的消息id
*/
@property (nonatomic) long withdrawalMessageId;;
@end
/**
* @}
*/