JMSGFileContent.h 1.69 KB
Newer Older
李晓兵's avatar
李晓兵 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
//
//  JMSGFileContent.h
//  JMessage
//
//  Created by deng on 16/7/4.
//  Copyright © 2016年 HXHG. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <JMessage/JMSGMediaAbstractContent.h>

/*!
 * 文件内容类型
 */
@interface JMSGFileContent : JMSGMediaAbstractContent<NSCopying>

JMSG_ASSUME_NONNULL_BEGIN

/*!
 * @abstract 文件名
 */
@property(nonatomic, copy, readonly) NSString *fileName;

/*!
 * @abstract 文件格式
 *
 * 注意:格式后缀不需要带点,只需后缀名,如:pdf、doc 等
 */
@property(nonatomic, strong) NSString * JMSG_NULLABLE format;

// 不支持使用的初始化方法
- (nullable instancetype)init NS_UNAVAILABLE;

/**
 *  初始化文件内容
 *
 *  @param data     文件数据
 *  @param fileName 文件名
 *
 */
- (instancetype)initWithFileData:(NSData *)data
                        fileName:(NSString *)fileName;

/*!
 * @abstract 获取文件内容的数据
 */
- (void)fileData:(JMSGAsyncDataHandler)handler;

/*!
 * @abstract 获取文件内容的数据
 *
 * @param progressHandler 下载进度。会持续回调更新进度, 直接下载完成。如果为 nil 则表示不关心进度。
 * @param handler 结果回调。回调参数:
 *
 * - data 文件数据;
 * - objectId 消息msgId;
 * - error 不为nil表示出错;
 *
 * 如果 error 为 ni, data 也为 nil, 表示没有数据.
 *
 * @discussion
 * 如果本地数据文件已经存在, 则直接返回;
 * 如果本地还没有文件,会发起网络请求下载。下载完后再回调。
 */
- (void)fileDataWithProgress:(JMSGMediaProgressHandler JMSG_NULLABLE)progressHandler
           completionHandler:(JMSGAsyncDataHandler JMSG_NULLABLE)handler;

JMSG_ASSUME_NONNULL_END

@end