123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- //
- // WFCCMessageContent.h
- // WFChatClient
- //
- // Created by heavyrain on 2017/8/15.
- // Copyright © 2017年 WildFireChat. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- /**
- 媒体类型
- - Media_Type_GENERAL: 一般
- - Media_Type_IMAGE: 图片
- - Media_Type_VOICE: 语音
- - Media_Type_VIDEO: 视频
- - Media_Type_File: 文件
- - Media_Type_PORTRAIT: 头像
- - Media_Type_FAVORITE: 收藏
- */
- typedef NS_ENUM(NSInteger, WFCCMediaType) {
- Media_Type_GENERAL = 0,
- Media_Type_IMAGE = 1,
- Media_Type_VOICE = 2,
- Media_Type_VIDEO = 3,
- Media_Type_File = 4,
- Media_Type_PORTRAIT = 5,
- Media_Type_FAVORITE = 6
- };
- /**
- 消息存储类型
-
- - NOT_PERSIST: 本地不存储
- - PERSIST: 本地存储
- - PERSIST_AND_COUNT: 本地存储,并计入未读计数
- - TRANSPARENT: 透传消息,不多端同步,如果对端不在线,消息会丢弃
- */
- typedef NS_ENUM(NSInteger, WFCCPersistFlag) {
- WFCCPersistFlag_NOT_PERSIST = 0,
- WFCCPersistFlag_PERSIST = 1,
- WFCCPersistFlag_PERSIST_AND_COUNT = 3,
- WFCCPersistFlag_TRANSPARENT = 4,
- };
- /**
- 普通消息的持久化内容
- */
- @interface WFCCMessagePayload : NSObject
- /**
- 消息类型
- */
- @property (nonatomic, assign)int contentType;
- /**
- 搜索内容
- */
- @property (nonatomic, strong)NSString *searchableContent;
- /**
- 推送内容
- */
- @property (nonatomic, strong)NSString *pushContent;
- /**
- 内容
- */
- @property (nonatomic, strong)NSString *content;
- /**
- 内容流
- */
- @property (nonatomic, strong)NSData *binaryContent;
- /**
- 只存储在客户端本地的内容
- */
- @property (nonatomic, strong)NSString *localContent;
- /**
- 提醒类型,1,提醒部分对象(mentinedTarget)。2,提醒全部。其他不提醒
- */
- @property (nonatomic, assign)int mentionedType;
- /**
- 提醒对象,mentionedType 1时有效
- */
- @property (nonatomic, strong)NSArray<NSString *> *mentionedTargets;
- @end
- /**
- 媒体消息的持久化内容
- */
- @interface WFCCMediaMessagePayload : WFCCMessagePayload
- /**
- 媒体类型
- */
- @property (nonatomic, assign)WFCCMediaType mediaType;
- /**
- 媒体内容的服务器URL
- */
- @property (nonatomic, strong)NSString *remoteMediaUrl;
- /**
- 媒体内容的本地URL,发送消息时不会携带,用于缓存加速显示
- */
- @property (nonatomic, strong)NSString *localMediaPath;
- @end
- /**
- 消息协议,所有消息(包括自定义消息均需要实现此协议)
- */
- @protocol WFCCMessageContent <NSObject>
- /**
- 消息编码
- @return 消息的持久化内容
- */
- - (WFCCMessagePayload *)encode;
- /**
- 消息解码
- @param payload 消息的持久化内容
- */
- - (void)decode:(WFCCMessagePayload *)payload;
- /**
- 消息类型,必须全局唯一。1000及以下为系统内置类型,自定义消息需要使用1000以上。
- @return 消息类型的唯一值
- */
- + (int)getContentType;
- /**
- 消息的存储策略
- @return 存储策略
- */
- + (int)getContentFlags;
- /**
- 消息的简短信息
- @return 消息的简短信息,主要用于通知提示和会话列表等需要简略信息的地方。
- */
- - (NSString *)digest;
- @end
- /**
- 消息内容,自定义消息可以继承此类
- */
- @interface WFCCMessageContent : NSObject <WFCCMessageContent>
- @end
|