123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412 |
- //
- // 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
|