New file |
| | |
| | | // |
| | | // TencentMessageObject.h |
| | | // TencentOpenApi_IOS |
| | | // |
| | | // Created by qqconnect on 13-5-27. |
| | | // Copyright (c) 2013年 Tencent. All rights reserved. |
| | | // |
| | | |
| | | #ifndef QQ_OPEN_SDK_LITE |
| | | |
| | | #import <Foundation/Foundation.h> |
| | | #import <UIKit/UIKit.h> |
| | | #import "sdkdef.h" |
| | | |
| | | #define kTextLimit (1024 * 1024) |
| | | #define kDataLimit (1024 * 1024 * 10) |
| | | #define kPreviewDataLimit (1024 * 1024) |
| | | |
| | | @class TencentApiReq; |
| | | @class TencentApiResp; |
| | | |
| | | /** |
| | | * 必填的NSArray型参数 |
| | | */ |
| | | typedef NSArray *TCRequiredArray; |
| | | |
| | | /** |
| | | * 必填的NSDictionary型参数 |
| | | */ |
| | | typedef NSDictionary *TCRequiredDictionary; |
| | | |
| | | /** |
| | | * 必填的TencentApiReq型参数 |
| | | */ |
| | | typedef TencentApiReq *TCRequiredReq; |
| | | |
| | | /** |
| | | * 可选的UIImage类型参数 |
| | | */ |
| | | typedef NSData *TCOptionalData; |
| | | |
| | | |
| | | /** |
| | | * 可选的NSArray型参数 |
| | | */ |
| | | typedef NSArray *TCOptionalArray; |
| | | |
| | | /** |
| | | * 可选的TencentApiReq型参数 |
| | | */ |
| | | typedef TencentApiReq *TCOptionalReq; |
| | | |
| | | /** |
| | | * TencentReqMessageType 请求类型枚举参数 |
| | | */ |
| | | typedef enum |
| | | { |
| | | /** TX APP请求内容填充(需要第三方开发者填充完成内容后需要主动调用sendRespMessageToTencentApp)*/ |
| | | ReqFromTencentAppQueryContent, |
| | | /** TX APP请求展现内容 (不用调用答复) */ |
| | | ReqFromTencentAppShowContent, |
| | | /** 第三方 APP 请求内容 */ |
| | | ReqFromThirdAppQueryContent, |
| | | /** 第三方 APP 请求展现内容(类似分享)*/ |
| | | ReqFromThirdAppShowContent, |
| | | } |
| | | TencentReqMessageType; |
| | | |
| | | typedef enum |
| | | { |
| | | RespFromTencentAppQueryContent, |
| | | RespFromTencentAppShowContent, |
| | | RespFromThirdAppQueryContent, |
| | | RespFromThirdAppShowContent, |
| | | } |
| | | TencentRespMessageType; |
| | | |
| | | /** |
| | | * TencentObjVersion 腾讯API消息类型枚举 |
| | | */ |
| | | typedef enum |
| | | { |
| | | /** 文本类型 */ |
| | | TencentTextObj, |
| | | /** 图片类型 */ |
| | | TencentImageObj, |
| | | /** 音频类型 */ |
| | | TencentAudioObj, |
| | | /** 视频类型 */ |
| | | TencentVideoObj, |
| | | /** 图片视频类 */ |
| | | TencentImageAndVideoObj, |
| | | } |
| | | TencentObjVersion; |
| | | |
| | | /** |
| | | * \brief 请求包 |
| | | * |
| | | * TencentApiReq用来向其他业务发送请求包 |
| | | */ |
| | | @interface TencentApiReq : NSObject<NSCoding> |
| | | |
| | | /** |
| | | * 根据序列号生成一个请求包 |
| | | * \param apiSeq 请求序列号 |
| | | * \param type 请求类型 |
| | | * \return tencentApiReq实例 |
| | | */ |
| | | + (TencentApiReq *)reqFromSeq:(NSInteger)apiSeq type:(TencentReqMessageType)type; |
| | | |
| | | /** 请求类型 */ |
| | | @property (readonly, assign, nonatomic)TCRequiredInt nMessageType; |
| | | |
| | | /** 请求平台 */ |
| | | @property (readonly, assign, nonatomic)NSInteger nPlatform; |
| | | |
| | | /** 请求的SDK版本号 */ |
| | | @property (readonly, assign, nonatomic)NSInteger nSdkVersion; |
| | | |
| | | /** 请求序列号 */ |
| | | @property (readonly, assign, nonatomic)TCRequiredInt nSeq; |
| | | |
| | | /** 第三方的APPID */ |
| | | @property (nonatomic, retain)TCRequiredStr sAppID; |
| | | |
| | | /** 请求内容 TencentBaseMessageObj对象数组 */ |
| | | @property (nonatomic, retain)TCOptionalArray arrMessage; |
| | | |
| | | /** 请求的描述 可以用于告诉对方这个请求的特定场景 */ |
| | | @property (nonatomic, retain)TCOptionalStr sDescription; |
| | | |
| | | @end |
| | | |
| | | /** |
| | | * \brief 答复包 |
| | | * |
| | | * TencentApiResp用来向其他业务发送答复包 |
| | | */ |
| | | @interface TencentApiResp : NSObject<NSCoding> |
| | | |
| | | /** |
| | | * 根据序列号生成一个答复包 |
| | | * \param req 答复对应的请求包(如果req不是TencentApiReq或者他的子类,会抛出异常) |
| | | * \return 答复包体 |
| | | */ |
| | | + (TencentApiResp *)respFromReq:(TencentApiReq *)req; |
| | | |
| | | /** 返回码 */ |
| | | @property (nonatomic, assign)TCOptionalInt nRetCode; |
| | | |
| | | /** 返回消息 */ |
| | | @property (nonatomic, retain)TCOptionalStr sRetMsg; |
| | | |
| | | /** 答复对应的请求包 */ |
| | | @property (nonatomic, retain)TCOptionalReq objReq; |
| | | |
| | | @end |
| | | |
| | | /** |
| | | * \brief 消息体 |
| | | * |
| | | * TencentBaseMessageObj 应用之间传递消息体 |
| | | */ |
| | | @interface TencentBaseMessageObj : NSObject<NSCoding> |
| | | |
| | | /** 消息类型 */ |
| | | @property (nonatomic, assign)NSInteger nVersion; |
| | | |
| | | /** 消息描述 */ |
| | | @property (nonatomic, retain)NSString *sName; |
| | | |
| | | /** 消息的扩展信息 主要是可以用来进行一些请求消息体的描述 譬如图片要求的width height 文字的关键字什么的, 也可以不用填写*/ |
| | | @property (nonatomic, retain)NSDictionary *dictExpandInfo; |
| | | |
| | | /** |
| | | * 消息是否有效 |
| | | */ |
| | | - (BOOL)isVaild; |
| | | |
| | | @end |
| | | |
| | | #pragma mark TencentTextMessage |
| | | /** |
| | | * \brief 文本的消息体 |
| | | * |
| | | * TencentTextMessageObjV1 应用之间传递的文本消息体 |
| | | */ |
| | | @interface TencentTextMessageObjV1 : TencentBaseMessageObj |
| | | |
| | | /** |
| | | * 文本 |
| | | * \note 文本长度不能超过4096个字 |
| | | */ |
| | | @property (nonatomic, retain) NSString *sText; |
| | | |
| | | |
| | | /** |
| | | * 初始化文本消息 |
| | | * \param text 文本 |
| | | * \return 初始化返回的文本消息 |
| | | */ |
| | | - (id)initWithText:(NSString *)text; |
| | | |
| | | @end |
| | | |
| | | |
| | | #pragma mark TecentImageMessage |
| | | |
| | | /** |
| | | * TencentApiImageSourceType 图片数据类型(请求方对数据类型可能会有限制) |
| | | */ |
| | | typedef enum |
| | | { |
| | | /** 图片数据是url或二进制数据 */ |
| | | AllImage, |
| | | /** 图片数据是url */ |
| | | UrlImage, |
| | | /** 图片数据是二进制数据 */ |
| | | DataImage, |
| | | }TencentApiImageSourceType; |
| | | |
| | | /** |
| | | * \brief 图片的消息体 |
| | | * |
| | | * TencentImageMessageObjV1 应用之间传递的图片消息体 |
| | | */ |
| | | @interface TencentImageMessageObjV1 : TencentBaseMessageObj |
| | | |
| | | /** |
| | | * 图片数据 |
| | | * \note 图片不能大于10M |
| | | */ |
| | | @property (nonatomic, retain) NSData *dataImage; |
| | | |
| | | /** |
| | | * 缩略图的数据 |
| | | * \note 图片不能大于1M |
| | | */ |
| | | @property (nonatomic, retain) NSData *dataThumbImage; |
| | | |
| | | /** 图片URL */ |
| | | @property (nonatomic, retain) NSString *sUrl; |
| | | |
| | | /** 图片的描述 */ |
| | | @property (nonatomic, retain) NSString *sDescription; |
| | | |
| | | /** 图片的size */ |
| | | @property (nonatomic, assign) CGSize szImage; |
| | | |
| | | /** |
| | | * 图片来源 |
| | | * \note TencentApiImageSourceType对应的类型 |
| | | */ |
| | | @property (readonly, assign) NSInteger nType; |
| | | |
| | | /** |
| | | * 初始化图片消息 |
| | | * \param dataImage 图片类型 |
| | | * \return 初始化返回的图片消息 |
| | | */ |
| | | - (id)initWithImageData:(NSData *)dataImage; |
| | | |
| | | /** |
| | | * 初始化图片消息 |
| | | * \param url 图片url |
| | | * \return 初始化返回的图片消息 |
| | | */ |
| | | - (id)initWithImageUrl:(NSString *)url; |
| | | |
| | | /** |
| | | * 初始化图片消息 |
| | | * \param type 图片类型 |
| | | * \return 初始化返回的图片消息 |
| | | */ |
| | | - (id)initWithType:(TencentApiImageSourceType)type; |
| | | @end |
| | | |
| | | |
| | | #pragma mark TencentAudioMessage |
| | | /** |
| | | * \brief 音频的消息体 |
| | | * |
| | | * TencentAudioMessageObjV1 应用之间传递的音频消息体 |
| | | */ |
| | | @interface TencentAudioMessageObjV1 : TencentBaseMessageObj |
| | | |
| | | /** 音频URL */ |
| | | @property (nonatomic, retain) NSString *sUrl; |
| | | |
| | | /** |
| | | * 音频的预览图 |
| | | * \note图片不能大于1M |
| | | */ |
| | | @property (nonatomic, retain) NSData *dataImagePreview; |
| | | |
| | | /** 音频的预览图URL */ |
| | | @property (nonatomic, retain) NSString *sImagePreviewUrl; |
| | | |
| | | /** 音频的描述 */ |
| | | @property (nonatomic, retain) NSString *sDescription; |
| | | |
| | | /** |
| | | * 初始化图片消息 |
| | | * \param url 音频URL |
| | | * \return 初始化返回的音频消息 |
| | | */ |
| | | - (id)initWithAudioUrl:(NSString *)url; |
| | | |
| | | @end |
| | | |
| | | |
| | | #pragma mark TencentVideoMessage |
| | | |
| | | /** |
| | | * TencentApiVideoSourceType 视频数据类型(请求方对数据类型可能会有限制) |
| | | */ |
| | | |
| | | typedef enum |
| | | { |
| | | /** 视频来源于本地或网络 */ |
| | | AllVideo, |
| | | /** 视频来源于本地 */ |
| | | LocalVideo, |
| | | /** 视频来源于网络 */ |
| | | NetVideo, |
| | | }TencentApiVideoSourceType; |
| | | |
| | | /** |
| | | * \brief 视频的消息体 |
| | | * |
| | | * TencentVideoMessageV1 应用之间传递的视频消息体 |
| | | */ |
| | | @interface TencentVideoMessageV1 : TencentBaseMessageObj |
| | | |
| | | /** |
| | | * 视频URL |
| | | * \note 不能超过1024 |
| | | */ |
| | | @property (nonatomic, retain) NSString *sUrl; |
| | | |
| | | /** |
| | | * 视频来源 主要是用来让发起方指定视频的来源 |
| | | * \note TencentApiVideoSourceType 对应的类型 只读参数 |
| | | */ |
| | | @property (readonly, assign, nonatomic) NSInteger nType; |
| | | |
| | | /** |
| | | * 视频的预览图 |
| | | * \note 图片不能大于1M |
| | | */ |
| | | @property (nonatomic, retain) NSData *dataImagePreview; |
| | | |
| | | /** 视频的预览图URL */ |
| | | @property (nonatomic, retain) NSString *sImagePreviewUrl; |
| | | |
| | | /** 视频的描述 */ |
| | | @property (nonatomic, retain) NSString *sDescription; |
| | | |
| | | /** |
| | | * 初始化视频消息 |
| | | * \param url 视频URL |
| | | * \param type 视频来源类型 |
| | | * \return 初始化返回的视频消息 |
| | | */ |
| | | - (id)initWithVideoUrl:(NSString *)url type:(TencentApiVideoSourceType)type; |
| | | |
| | | |
| | | /** |
| | | * 初始化视频消息 |
| | | * \param type 视频来源类型 |
| | | * \return 初始化返回的视频消息 |
| | | */ |
| | | - (id)initWithType:(TencentApiVideoSourceType)type; |
| | | @end |
| | | |
| | | #pragma mark TencentImageMessageObj |
| | | /** |
| | | * \brief 视频图片消息体 |
| | | * |
| | | * TencentVideoMessageV1 这是一个扩展的类 是一个图片视频类 |
| | | * \note 图片视频可以任选一个内容填充 但是注意只能填一个 当有一种类型被填充后 另外一个种类型就无法填充了 |
| | | */ |
| | | @interface TencentImageAndVideoMessageObjV1 : TencentBaseMessageObj |
| | | |
| | | /** 图片消息 */ |
| | | @property (nonatomic, retain) TencentImageMessageObjV1 *objImageMessage; |
| | | |
| | | /** 视频消息 */ |
| | | @property (nonatomic, retain) TencentVideoMessageV1 *objVideoMessage; |
| | | |
| | | /** |
| | | * 初始化图片消息 |
| | | * \param dataImage 图片数据 |
| | | * \param url 视频url |
| | | * \return 初始化返回的图片视频消息 |
| | | */ |
| | | - (id)initWithMessage:(NSData *)dataImage videoUrl:(NSString *)url; |
| | | |
| | | /** |
| | | * 设置图片 |
| | | * \param dataImage 图片数据 |
| | | */ |
| | | - (void)setDataImage:(NSData *)dataImage; |
| | | |
| | | /** |
| | | * 设置视频 |
| | | * \param videoUrl 视频URL |
| | | */ |
| | | - (void)setVideoUrl:(NSString *)videoUrl; |
| | | @end |
| | | |
| | | #endif |