UMSocialMessageObject.h 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425
  1. //
  2. // UMSocialMessageObject.h
  3. // SocialSDK
  4. //
  5. // Created by umeng on 16/4/22.
  6. // Copyright © 2016年 dongjianxiong. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. @interface UMSocialMessageObject : NSObject
  10. /**
  11. * 文本标题
  12. * @disucss v6.0.3版本后增加的一个字段,
  13. * @disucss 该字段目前只有Tumblr平台会使用到。
  14. * @discuss 该字段以后会在需要文本title字段中扩展,具体请参看官方文档。
  15. */
  16. @property (nonatomic,copy)NSString* title;
  17. /**
  18. * text 文本内容
  19. * @note 非纯文本分享文本
  20. */
  21. @property (nonatomic, copy) NSString *text;
  22. /**
  23. * 分享的所媒体内容对象
  24. */
  25. @property (nonatomic, strong) id shareObject;
  26. /**
  27. * 其他相关参数,见相应平台说明
  28. */
  29. @property (nonatomic, strong) NSDictionary *moreInfo;
  30. + (UMSocialMessageObject *)messageObject;
  31. + (UMSocialMessageObject *)messageObjectWithMediaObject:(id)mediaObject;
  32. @end
  33. @interface UMShareObject : NSObject
  34. /**
  35. * 标题
  36. * @note 标题的长度依各个平台的要求而定
  37. */
  38. @property (nonatomic, copy) NSString *title;
  39. /**
  40. * 描述
  41. * @note 描述内容的长度依各个平台的要求而定
  42. */
  43. @property (nonatomic, copy) NSString *descr;
  44. /**
  45. * 缩略图 UIImage或者NSData类型或者NSString类型(图片url)
  46. */
  47. @property (nonatomic, strong) id thumbImage;
  48. /**
  49. * @param title 标题
  50. * @param descr 描述
  51. * @param thumImage 缩略图(UIImage或者NSData类型,或者image_url)
  52. *
  53. */
  54. + (id)shareObjectWithTitle:(NSString *)title
  55. descr:(NSString *)descr
  56. thumImage:(id)thumImage;
  57. + (void)um_imageDataWithImage:(id)image completion:(void (^)(NSData *image))completion;
  58. #pragma mark - 6.0.3新版本的函数
  59. + (void)um_imageDataWithImage:(id)image withCompletion:(void (^)(NSData *imageData,NSError* error))completion;
  60. @end
  61. @interface UMShareImageObject : UMShareObject
  62. /** 图片内容 (可以是UIImage类对象,也可以是NSdata类对象,也可以是图片链接imageUrl NSString类对象)
  63. * @note 图片大小根据各个平台限制而定
  64. */
  65. @property (nonatomic, retain) id shareImage;
  66. /**
  67. * @param title 标题
  68. * @param descr 描述
  69. * @param thumImage 缩略图(UIImage或者NSData类型,或者image_url)
  70. *
  71. */
  72. + (UMShareImageObject *)shareObjectWithTitle:(NSString *)title
  73. descr:(NSString *)descr
  74. thumImage:(id)thumImage;
  75. @end
  76. @interface UMShareMusicObject : UMShareObject
  77. /** 音乐网页的url地址
  78. * @note 长度不能超过10K
  79. */
  80. @property (nonatomic, retain) NSString *musicUrl;
  81. /** 音乐lowband网页的url地址
  82. * @note 长度不能超过10K
  83. */
  84. @property (nonatomic, retain) NSString *musicLowBandUrl;
  85. /** 音乐数据url地址
  86. * @note 长度不能超过10K
  87. */
  88. @property (nonatomic, retain) NSString *musicDataUrl;
  89. /**音乐lowband数据url地址
  90. * @note 长度不能超过10K
  91. */
  92. @property (nonatomic, retain) NSString *musicLowBandDataUrl;
  93. /**
  94. * @param title 标题
  95. * @param descr 描述
  96. * @param thumImage 缩略图(UIImage或者NSData类型,或者image_url)
  97. *
  98. */
  99. + (UMShareMusicObject *)shareObjectWithTitle:(NSString *)title
  100. descr:(NSString *)descr
  101. thumImage:(id)thumImage;
  102. @end
  103. @interface UMShareVideoObject : UMShareObject
  104. /**
  105. 视频网页的url
  106. @warning 不能为空且长度不能超过255
  107. */
  108. @property (nonatomic, strong) NSString *videoUrl;
  109. /**
  110. 视频lowband网页的url
  111. @warning 长度不能超过255
  112. */
  113. @property (nonatomic, strong) NSString *videoLowBandUrl;
  114. /**
  115. 视频数据流url
  116. @warning 长度不能超过255
  117. */
  118. @property (nonatomic, strong) NSString *videoStreamUrl;
  119. /**
  120. 视频lowband数据流url
  121. @warning 长度不能超过255
  122. */
  123. @property (nonatomic, strong) NSString *videoLowBandStreamUrl;
  124. /**
  125. * @param title 标题
  126. * @param descr 描述
  127. * @param thumImage 缩略图(UIImage或者NSData类型,或者image_url)
  128. *
  129. */
  130. + (UMShareVideoObject *)shareObjectWithTitle:(NSString *)title
  131. descr:(NSString *)descr
  132. thumImage:(id)thumImage;
  133. @end
  134. @interface UMShareWebpageObject : UMShareObject
  135. /** 网页的url地址
  136. * @note 不能为空且长度不能超过10K
  137. */
  138. @property (nonatomic, retain) NSString *webpageUrl;
  139. /**
  140. * @param title 标题
  141. * @param descr 描述
  142. * @param thumImage 缩略图(UIImage或者NSData类型,或者image_url)
  143. *
  144. */
  145. + (UMShareWebpageObject *)shareObjectWithTitle:(NSString *)title
  146. descr:(NSString *)descr
  147. thumImage:(id)thumImage;
  148. @end
  149. /*! @brief 分享消息中的邮件分享对象
  150. *
  151. * @see UMSocialMessageObject
  152. */
  153. @interface UMShareEmailObject : UMShareObject
  154. /**
  155. * 主题
  156. */
  157. @property (nonatomic, strong) NSString *subject;
  158. /**
  159. * 接收人
  160. */
  161. @property (nonatomic, strong) NSArray *toRecipients;
  162. /**
  163. * 抄送人
  164. */
  165. @property (nonatomic, strong) NSArray *ccRecipients;
  166. /**
  167. * 密送人
  168. */
  169. @property (nonatomic, strong) NSArray *bccRecipients;
  170. /**
  171. * 文本内容
  172. */
  173. @property (nonatomic, copy) NSString *emailContent;
  174. /**
  175. * 图片,最好是本地图片(UIImage,或者NSdata)
  176. */
  177. @property (nonatomic, strong) id emailImage;
  178. /**
  179. * 发送图片的类型 @see MIME
  180. * 默认 "image/ *"
  181. */
  182. @property (nonatomic, copy) NSString* emailImageType;
  183. /**
  184. * 发送图片的名字
  185. * 默认 "um_share_image.png"
  186. */
  187. @property (nonatomic, copy) NSString* emailImageName;
  188. /**
  189. * 文件(NSData)
  190. */
  191. @property (nonatomic, strong) NSData *emailSendData;
  192. /**
  193. * 文件格式
  194. * @see MIME
  195. * 默认 "text/ *"
  196. */
  197. @property (nonatomic, copy) NSString *fileType;
  198. /**
  199. * 文件名,(例如图片 imageName.png, 文件名后要跟文件后缀名,否则没法识别,导致类似图片不显示的问题)
  200. * 默认 "um_share_file.txt"
  201. */
  202. @property (nonatomic, copy) NSString *fileName;
  203. @end
  204. /*! @brief 分享消息中的短信分享对象
  205. *
  206. * @see UMSocialMessageObject
  207. * @discuss UMShareSmsObject只能发送的附件是图片!!!!
  208. * 如果发送其他的文件的话,虽然能在短信界面显示发送的文件,但是会发送不成功
  209. */
  210. @interface UMShareSmsObject : UMShareObject
  211. /**
  212. * 接收人
  213. */
  214. @property (nonatomic, strong) NSArray *recipients;
  215. /**
  216. * 主题
  217. */
  218. @property (nonatomic, strong) NSString *subject;
  219. /**
  220. * 文本内容
  221. */
  222. @property (nonatomic, copy) NSString *smsContent;
  223. /**
  224. * 图片
  225. */
  226. @property (nonatomic, strong) id smsImage;//UIImage对象必填
  227. @property (nonatomic, copy) NSString *imageType;//图片格式必填,必须指定数据格式,如png图片格式应传入@"png"
  228. @property (nonatomic, copy) NSString *imageName;//图片 例如 imageName.png, 文件名后要跟文件后缀名,否则没法识别,导致类似图片不显示的问题)
  229. #pragma mark - 以下字段为非图片的属性
  230. /**
  231. * 文件数据(NSData)
  232. * 必填
  233. */
  234. @property (nonatomic, strong) NSData *smsSendData;
  235. /**
  236. * 文件格式
  237. * 必填,必须指定数据格式,如png图片格式应传入@"txt"
  238. */
  239. @property (nonatomic, copy) NSString *fileType;
  240. /**
  241. * 文件名,(例如图片 fileName.txt, 文件名后要跟文件后缀名,否则没法识别,导致类似图片不显示的问题)
  242. */
  243. @property (nonatomic, copy) NSString *fileName;
  244. /**
  245. * 文件地址url(http:// or file:// ...../fileName.txt)
  246. */
  247. @property (nonatomic, copy) NSString *fileUrl;
  248. @end
  249. /**
  250. * 表情的类
  251. * 表请的缩略图数据请存放在UMShareEmotionObject中
  252. * 注意:emotionData和emotionURL成员不能同时为空,若同时出现则取emotionURL
  253. */
  254. @interface UMShareEmotionObject : UMShareObject
  255. /**
  256. * 表情数据,如GIF等
  257. * @note 微信的话大小不能超过10M
  258. */
  259. @property (nonatomic, strong) NSData *emotionData;
  260. /**
  261. * @param title 标题
  262. * @param descr 描述
  263. * @param thumImage 缩略图(UIImage或者NSData类型,或者image_url)
  264. *
  265. */
  266. + (UMShareEmotionObject *)shareObjectWithTitle:(NSString *)title
  267. descr:(NSString *)descr
  268. thumImage:(id)thumImage;
  269. @end
  270. #pragma mark - UMSAppExtendObject
  271. /*! @brief 多媒体消息中包含的App扩展数据对象
  272. *
  273. * 第三方程序向微信终端发送包含UMShareExtendObject的多媒体消息,
  274. * 微信需要处理该消息时,会调用该第三方程序来处理多媒体消息内容。
  275. * @note url,extInfo和fileData不能同时为空
  276. * @see UMShareObject
  277. */
  278. @interface UMShareExtendObject : UMShareObject
  279. /** 若第三方程序不存在,微信终端会打开该url所指的App下载地址
  280. * @note 长度不能超过10K
  281. */
  282. @property (nonatomic, retain) NSString *url;
  283. /** 第三方程序自定义简单数据,微信终端会回传给第三方程序处理
  284. * @note 长度不能超过2K
  285. */
  286. @property (nonatomic, retain) NSString *extInfo;
  287. /** App文件数据,该数据发送给微信好友,微信好友需要点击后下载数据,微信终端会回传给第三方程序处理
  288. * @note 大小不能超过10M
  289. */
  290. @property (nonatomic, retain) NSData *fileData;
  291. @end
  292. #pragma mark - UMFileObject
  293. /*! @brief 多媒体消息中包含的文件数据对象
  294. *
  295. * @see UMShareObject
  296. */
  297. @interface UMShareFileObject : UMShareObject
  298. /** 文件后缀名
  299. * @note 长度不超过64字节
  300. */
  301. @property (nonatomic, retain) NSString *fileExtension;
  302. /** 文件真实数据内容
  303. * @note 大小不能超过10M
  304. */
  305. @property (nonatomic, retain) NSData *fileData;
  306. @end
  307. #pragma mark - UMMiniProgramObject
  308. /*! @brief 多媒体消息中包含 分享微信小程序的数据对象
  309. *
  310. * @see UMShareObject
  311. */
  312. @interface UMShareMiniProgramObject : UMShareObject
  313. /**
  314. 低版本微信网页链接
  315. */
  316. @property (nonatomic, strong) NSString *webpageUrl;
  317. /**
  318. 小程序username
  319. */
  320. @property (nonatomic, strong) NSString *userName;
  321. /**
  322. 小程序页面的路径
  323. */
  324. @property (nonatomic, strong) NSString *path;
  325. @end