WeiboSDK.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728
  1. //
  2. // WeiboSDKHeaders.h
  3. // WeiboSDKDemo
  4. //
  5. // Created by Wade Cheng on 4/3/13.
  6. // Copyright (c) 2013 SINA iOS Team. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <UIKit/UIKit.h>
  10. #import "WBHttpRequest.h"
  11. typedef NS_ENUM(NSInteger, WeiboSDKResponseStatusCode)
  12. {
  13. WeiboSDKResponseStatusCodeSuccess = 0,//成功
  14. WeiboSDKResponseStatusCodeUserCancel = -1,//用户取消发送
  15. WeiboSDKResponseStatusCodeSentFail = -2,//发送失败
  16. WeiboSDKResponseStatusCodeAuthDeny = -3,//授权失败
  17. WeiboSDKResponseStatusCodeUserCancelInstall = -4,//用户取消安装微博客户端
  18. WeiboSDKResponseStatusCodeShareInSDKFailed = -8,//分享失败 详情见response UserInfo
  19. WeiboSDKResponseStatusCodeUnsupport = -99,//不支持的请求
  20. WeiboSDKResponseStatusCodeUnknown = -100,
  21. };
  22. typedef NS_ENUM(NSInteger, WBULCheckStep)
  23. {
  24. WBULCheckStepNone = 0, //默认
  25. WBULCheckStepParams = 1, //参数检查
  26. WBULCheckStepSystemVersion = 2, //当前系统版本检查
  27. WBULCheckStepWeiboVersion = 3, //微博客户端版本检查
  28. WBULCheckStepSDKInnerOperation = 4, //微博SDK内部操作检查
  29. WBULCheckStepLaunchWeibo = 5, //App拉起微博检查
  30. WBULCheckStepBackToCurrentApp = 6, //由微博返回当前App检查
  31. WBULCheckStepFinal = 7 //最终检查,也代表检测结果合法有效
  32. };
  33. @protocol WeiboSDKDelegate;
  34. @protocol WBHttpRequestDelegate;
  35. @class WBBaseRequest;
  36. @class WBBaseResponse;
  37. @class WBMessageObject;
  38. @class WBImageObject;
  39. @class WBBaseMediaObject;
  40. @class WBHttpRequest;
  41. @class PHAsset;
  42. @class WBNewVideoObject;
  43. /**
  44. 微博SDK接口类
  45. */
  46. @interface WeiboSDK : NSObject
  47. /**
  48. 检查用户是否安装了微博客户端程序
  49. @return 已安装返回YES,未安装返回NO
  50. */
  51. + (BOOL)isWeiboAppInstalled;
  52. /**
  53. 检查用户是否可以通过微博客户端进行分享
  54. @return 可以使用返回YES,不可以使用返回NO
  55. */
  56. + (BOOL)isCanShareInWeiboAPP;
  57. /**
  58. 检查用户是否可以使用微博客户端进行SSO授权
  59. @return 可以使用返回YES,不可以使用返回NO
  60. */
  61. + (BOOL)isCanSSOInWeiboApp;
  62. /**
  63. 打开微博客户端程序
  64. @return 成功打开返回YES,失败返回NO
  65. */
  66. + (BOOL)openWeiboApp;
  67. /**
  68. 获取微博客户端程序的itunes安装地址
  69. @return 微博客户端程序的itunes安装地址
  70. */
  71. + (NSString *)getWeiboAppInstallUrl;
  72. /**
  73. 获取当前微博SDK的版本号
  74. @return 当前微博SDK的版本号
  75. */
  76. + (NSString *)getSDKVersion;
  77. extern NSString * const WeiboSDKGetAidSucessNotification;
  78. extern NSString * const WeiboSDKGetAidFailNotification;
  79. /**
  80. 获取当前微博SDK的aid
  81. 返回的aid值可能为 nil ,当值为 nil 时会尝试获取 aid 值。
  82. 当获取成功( aid 值变为有效值)时,SDK会发出名为 WeiboSDKGetAidSucessNotification 的通知,通知中带有 aid 值。
  83. 当获取失败时,SDK会发出名为 WeiboSDKGetAidFailNotification 的通知,通知中带有 NSError 对象。
  84. @return aid 用于广告的与设备信息相关的标识符
  85. */
  86. + (NSString *)getWeiboAid;
  87. /**
  88. 向微博客户端程序注册第三方应用
  89. @param appKey 微博开放平台第三方应用appKey
  90. @param universalLink 开发者Universal Link
  91. @return 注册成功返回YES,失败返回NO
  92. */
  93. + (BOOL)registerApp:(NSString * __nonnull)appKey universalLink:(NSString * __nonnull)universalLink;
  94. /**
  95. step:检测的步骤
  96. error:universalLink是否有效,error为nil universalLink有效,不为nil为无效universalLink
  97. */
  98. + (void)checkUniversalLink:(void (^)(WBULCheckStep step, NSError *error))checkBlock;
  99. /**
  100. 处理微博客户端程序通过URL启动第三方应用时传递的数据
  101. 需要在 application:openURL:sourceApplication:annotation:或者application:handleOpenURL中调用
  102. @param url 启动第三方应用的URL
  103. @param delegate WeiboSDKDelegate对象,用于接收微博触发的消息
  104. @see WeiboSDKDelegate
  105. */
  106. + (BOOL)handleOpenURL:(NSURL *)url delegate:(id<WeiboSDKDelegate>)delegate;
  107. /*! @brief 处理微博通过Universal Link启动App时传递的数据
  108. *
  109. * 需要在 application:continueUserActivity:restorationHandler:中调用。
  110. * @param userActivity 微信启动第三方应用时系统API传递过来的userActivity
  111. * @param delegate WXApiDelegate对象,用来接收微博触发的消息。
  112. * @return 成功返回YES,失败返回NO。
  113. */
  114. + (BOOL)handleOpenUniversalLink:(NSUserActivity *)userActivity delegate:(nullable id<WeiboSDKDelegate>)delegate;
  115. /**
  116. 发送请求给微博客户端程序,并切换到微博
  117. 请求发送给微博客户端程序之后,微博客户端程序会进行相关的处理,处理完成之后一定会调用 [WeiboSDKDelegate didReceiveWeiboResponse:] 方法将处理结果返回给第三方应用
  118. @param request 具体的发送请求
  119. @see [WeiboSDKDelegate didReceiveWeiboResponse:]
  120. @see WBBaseResponse
  121. @param completion 调用结果回调block
  122. */
  123. + (void)sendRequest:(WBBaseRequest *)request completion:(void (^ __nullable)(BOOL success))completion;
  124. /**
  125. 收到微博客户端程序的请求后,发送对应的应答给微博客户端端程序,并切换到微博
  126. 第三方应用收到微博的请求后,异步处理该请求,完成后必须调用该函数将应答返回给微博
  127. @param response 具体的应答内容
  128. @see WBBaseRequest
  129. @param completion 调用结果回调block
  130. */
  131. + (void)sendResponse:(WBBaseResponse *)response completion:(void (^ __nullable)(BOOL success))completion;
  132. /**
  133. 设置WeiboSDK的调试模式
  134. 当开启调试模式时,WeiboSDK会在控制台输出详细的日志信息,开发者可以据此调试自己的程序。默认为 NO
  135. @param enabled 开启或关闭WeiboSDK的调试模式
  136. */
  137. + (void)enableDebugMode:(BOOL)enabled;
  138. /**
  139. 设置WeiboSDK是否获取idfa 默认获取
  140. */
  141. + (void)banGetIdfa:(BOOL)isBan;
  142. /**
  143. 取消授权,登出接口
  144. 调用此接口后,token将失效
  145. @param token 第三方应用之前申请的Token
  146. @param delegate WBHttpRequestDelegate对象,用于接收微博SDK对于发起的接口请求的请求的响应
  147. @param tag 用户自定义TAG,将通过回调WBHttpRequest实例的tag属性返回
  148. */
  149. + (void)logOutWithToken:(NSString *)token delegate:(id<WBHttpRequestDelegate>)delegate withTag:(NSString*)tag;
  150. /**
  151. 呼起微博客户端或打开微博H5页面,SDK自动检测是否安装微博客户端,当调用SDK相关方法时:
  152. 有的话呼起微博客户端定位到对应界面;
  153. 没有的话打开 webView 加载相应的微博H5页面;
  154. @param uid 用户id
  155. @param mid 微博id
  156. @param aid 文章id
  157. */
  158. //连接到指定用户的微博个人主页,连接后可进行加关注等互动
  159. + (void)linkToUser:(NSString *)uid;
  160. //连接到指定的单条微博详情页,连接后可对这条微博进行转、评、赞等互动
  161. + (void)linkToSingleBlog:(NSString *)uid blogID:(NSString *)mid;
  162. //连接到指定的微博头条文章页
  163. + (void)linkToArticle:(NSString *)aid;
  164. //分享到微博
  165. + (void)shareToWeibo:(NSString *)content;
  166. //评论指定的微博
  167. + (void)commentToWeibo:(NSString *)mid;
  168. //连接到微博搜索内容流
  169. + (void)linkToSearch:(NSString *)keyword;
  170. //连接到我的微博消息流
  171. + (void)linkToTimeLine;
  172. //连接到我的微博个人主页
  173. + (void)linkToProfile;
  174. @end
  175. /**
  176. 接收并处理来至微博客户端程序的事件消息
  177. */
  178. @protocol WeiboSDKDelegate <NSObject>
  179. /**
  180. 收到一个来自微博客户端程序的请求
  181. 收到微博的请求后,第三方应用应该按照请求类型进行处理,处理完后必须通过 [WeiboSDK sendResponse:] 将结果回传给微博
  182. @param request 具体的请求对象
  183. */
  184. - (void)didReceiveWeiboRequest:(WBBaseRequest *)request;
  185. /**
  186. 收到一个来自微博客户端程序的响应
  187. 收到微博的响应后,第三方应用可以通过响应类型、响应的数据和 WBBaseResponse.userInfo 中的数据完成自己的功能
  188. @param response 具体的响应对象
  189. */
  190. - (void)didReceiveWeiboResponse:(WBBaseResponse *)response;
  191. @end
  192. #pragma mark - DataTransferObject and Base Request/Response
  193. /**
  194. 微博客户端程序和第三方应用之间传输数据信息的基类
  195. */
  196. @interface WBDataTransferObject : NSObject
  197. /**
  198. 自定义信息字典,用于数据传输过程中存储相关的上下文环境数据
  199. 第三方应用给微博客户端程序发送 request 时,可以在 userInfo 中存储请求相关的信息。
  200. @warning userInfo中的数据必须是实现了 `NSCoding` 协议的对象,必须保证能序列化和反序列化
  201. @warning 序列化后的数据不能大于10M
  202. */
  203. @property (nonatomic, strong) NSDictionary *userInfo;
  204. /**
  205. 发送该数据对象的SDK版本号
  206. 如果数据对象是自己生成的,则sdkVersion为当前SDK的版本号;如果是接收到的数据对象,则sdkVersion为数据发送方SDK版本号
  207. */
  208. @property (strong, nonatomic, readonly) NSString *sdkVersion;
  209. /**
  210. 当用户没有安装微博客户端程序时是否提示用户打开微博安装页面
  211. 如果设置为YES,当用户未安装微博时会弹出Alert询问用户是否要打开微博App的安装页面。默认为YES
  212. */
  213. @property (nonatomic, assign) BOOL shouldOpenWeiboAppInstallPageIfNotInstalled;
  214. @end
  215. /**
  216. 微博SDK所有请求类的基类
  217. */
  218. @interface WBBaseRequest : WBDataTransferObject
  219. /**
  220. 返回一个 WBBaseRequest 对象
  221. @return 返回一个*自动释放的*WBBaseRequest对象
  222. */
  223. + (id)request;
  224. @end
  225. /**
  226. 微博SDK所有响应类的基类
  227. */
  228. @interface WBBaseResponse : WBDataTransferObject
  229. /**
  230. 对应的 request 中的自定义信息字典
  231. 如果当前 response 是由微博客户端响应给第三方应用的,则 requestUserInfo 中会包含原 request.userInfo 中的所有数据
  232. @see WBBaseRequest.userInfo
  233. */
  234. @property (strong, nonatomic, readonly) NSDictionary *requestUserInfo;
  235. /**
  236. 响应状态码
  237. 第三方应用可以通过statusCode判断请求的处理结果
  238. */
  239. @property (nonatomic, assign) WeiboSDKResponseStatusCode statusCode;
  240. /**
  241. 返回一个 WBBaseResponse 对象
  242. @return 返回一个*自动释放的*WBBaseResponse对象
  243. */
  244. + (id)response;
  245. @end
  246. #pragma mark - Authorize Request/Response
  247. /**
  248. 第三方应用向微博客户端请求认证的消息结构
  249. 第三方应用向微博客户端申请认证时,需要调用 [WeiboSDK sendRequest:] 函数, 向微博客户端发送一个 WBAuthorizeRequest 的消息结构。
  250. 微博客户端处理完后会向第三方应用发送一个结构为 WBAuthorizeResponse 的处理结果。
  251. */
  252. @interface WBAuthorizeRequest : WBBaseRequest
  253. /**
  254. 微博开放平台第三方应用授权回调页地址,默认为`http://`
  255. 参考 http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E#.E5.AE.A2.E6.88.B7.E7.AB.AF.E9.BB.98.E8.AE.A4.E5.9B.9E.E8.B0.83.E9.A1.B5
  256. @warning 必须保证和在微博开放平台应用管理界面配置的“授权回调页”地址一致,如未进行配置则默认为`http://`
  257. @warning 不能为空,长度小于1K
  258. */
  259. @property (nonatomic, strong) NSString *redirectURI;
  260. /**
  261. 微博开放平台第三方应用scope,多个scrope用逗号分隔
  262. 参考 http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E#scope
  263. @warning 长度小于1K
  264. */
  265. @property (nonatomic, strong) NSString *scope;
  266. /**
  267. 当用户没有安装微博客户端或微博客户端过低无法支持SSO的时候是否弹出SDK自带的Webview进行授权
  268. 如果设置为YES,当用户没有安装微博客户端或微博客户端过低无法支持SSO的时候会自动弹出SDK自带的Webview进行授权。
  269. 如果设置为NO,会根据 shouldOpenWeiboAppInstallPageIfNotInstalled 属性判断是否弹出安装/更新微博的对话框
  270. 默认为YES
  271. */
  272. @property (nonatomic, assign) BOOL shouldShowWebViewForAuthIfCannotSSO;
  273. @end
  274. /**
  275. 微博客户端处理完第三方应用的认证申请后向第三方应用回送的处理结果
  276. WBAuthorizeResponse 结构中仅包含常用的 userID 、accessToken 和 expirationDate 信息,其他的认证信息(比如部分应用可以获取的 refresh_token 信息)会统一存放到 userInfo 中
  277. */
  278. @interface WBAuthorizeResponse : WBBaseResponse
  279. /**
  280. 用户ID
  281. */
  282. @property (nonatomic, strong) NSString *userID;
  283. /**
  284. 认证口令
  285. */
  286. @property (nonatomic, strong) NSString *accessToken;
  287. /**
  288. 认证过期时间
  289. */
  290. @property (nonatomic, strong) NSDate *expirationDate;
  291. /**
  292. 当认证口令过期时用于换取认证口令的更新口令
  293. */
  294. @property (nonatomic, strong) NSString *refreshToken;
  295. @end
  296. #pragma mark - ProvideMessageForWeibo Request/Response
  297. /**
  298. 微博客户端向第三方程序请求提供内容的消息结构
  299. */
  300. @interface WBProvideMessageForWeiboRequest : WBBaseRequest
  301. @end
  302. /**
  303. 微博客户端向第三方应用请求提供内容,第三方应用向微博客户端返回的消息结构
  304. */
  305. @interface WBProvideMessageForWeiboResponse : WBBaseResponse
  306. /**
  307. 提供给微博客户端的消息
  308. */
  309. @property (nonatomic, strong) WBMessageObject *message;
  310. /**
  311. 返回一个 WBProvideMessageForWeiboResponse 对象
  312. @param message 需要回送给微博客户端程序的消息对象
  313. @return 返回一个*自动释放的*WBProvideMessageForWeiboResponse对象
  314. */
  315. + (id)responseWithMessage:(WBMessageObject *)message;
  316. @end
  317. #pragma mark - SendMessageToWeibo Request/Response
  318. /**
  319. 第三方应用发送消息至微博客户端程序的消息结构体
  320. */
  321. @interface WBSendMessageToWeiboRequest : WBBaseRequest
  322. /**
  323. 发送给微博客户端的消息
  324. */
  325. @property (nonatomic, strong) WBMessageObject *message;
  326. /**
  327. 返回一个 WBSendMessageToWeiboRequest 对象
  328. 此方法生成对象被[WeiboSDK sendRequest:]会唤起微博客户端的发布器进行分享,如果未安装微博客户端或客户端版本太低
  329. 会根据 shouldOpenWeiboAppInstallPageIfNotInstalled 属性判断是否弹出安装/更新微博的对话框
  330. @param message 需要发送给微博客户端的消息对象
  331. @return 返回一个*自动释放的*WBSendMessageToWeiboRequest对象
  332. */
  333. + (id)requestWithMessage:(WBMessageObject *)message;
  334. /**
  335. 返回一个 WBSendMessageToWeiboRequest 对象
  336. 当用户安装了可以支持微博客户端內分享的微博客户端时,会自动唤起微博并分享
  337. 当用户没有安装微博客户端或微博客户端过低无法支持通过客户端內分享的时候会自动唤起SDK內微博发布器
  338. @param message 需要发送给微博的消息对象
  339. @param authRequest 授权相关信息,与access_token二者至少有一个不为空,当access_token为空并且需要弹出SDK內发布器时会通过此信息先进行授权后再分享
  340. @param access_token 第三方应用之前申请的Token,当此值不为空并且无法通过客户端分享的时候,会使用此token进行分享。
  341. @return 返回一个*自动释放的*WBSendMessageToWeiboRequest对象
  342. */
  343. + (id)requestWithMessage:(WBMessageObject *)message
  344. authInfo:(WBAuthorizeRequest *)authRequest
  345. access_token:(NSString *)access_token;
  346. @end
  347. /**
  348. WBSendMessageToWeiboResponse
  349. */
  350. @interface WBSendMessageToWeiboResponse : WBBaseResponse
  351. /**
  352. 可能在分享过程中用户进行了授权操作,当此值不为空时,为用户相应授权信息
  353. */
  354. @property (nonatomic,strong) WBAuthorizeResponse *authResponse;
  355. @end
  356. #pragma mark - ShareMessageToContact Request/Response
  357. /**
  358. 第三方应用分享链接到私信
  359. */
  360. @interface WBShareMessageToContactRequest : WBBaseRequest
  361. /**
  362. 分享链接的消息
  363. */
  364. @property (nonatomic, strong) WBMessageObject *message;
  365. /**
  366. 返回一个 WBShareMessageToContactRequest 对象
  367. 此方法生成对象被[WeiboSDK sendRequest:]会唤起微博客户端的发布器进行分享
  368. @param message 需要发送给微博客户端的消息对象
  369. @return 返回一个*自动释放的*WBSendMessageToWeiboRequest对象
  370. */
  371. + (void)requestWithMessage:(WBMessageObject *)message;
  372. @end
  373. /**
  374. WBSendMessageToWeiboResponse
  375. */
  376. @interface WBShareMessageToContactResponse : WBBaseResponse
  377. /**
  378. 可能在分享过程中用户进行了授权操作,当此值不为空时,为用户相应授权信息
  379. */
  380. @property (nonatomic,strong) WBAuthorizeResponse *authResponse;
  381. @end
  382. #pragma mark - MessageObject / ImageObject
  383. /**
  384. 微博客户端程序和第三方应用之间传递的消息结构
  385. 一个消息结构由三部分组成:文字、图片和多媒体数据。三部分内容中至少有一项不为空,图片和多媒体数据不能共存。(新版的多图和视频属于图片数据,并且图片和视频也不能共存)
  386. */
  387. @interface WBMessageObject : NSObject
  388. /**
  389. 消息的文本内容
  390. @warning 长度小于2000个汉字
  391. */
  392. @property (nonatomic, strong) NSString *text;
  393. /**
  394. 消息的图片内容
  395. @see WBImageObject
  396. */
  397. @property (nonatomic, strong) WBImageObject *imageObject;
  398. /**
  399. 消息的多媒体内容
  400. @see WBBaseMediaObject
  401. */
  402. @property (nonatomic, strong) WBBaseMediaObject *mediaObject;
  403. /**
  404. 消息的视频内容
  405. @see WBVideoObject
  406. */
  407. @property (nonatomic, strong) WBNewVideoObject *videoObject;
  408. /**
  409. 返回一个 WBMessageObject 对象
  410. @return 返回一个*自动释放的*WBMessageObject对象
  411. */
  412. + (id)message;
  413. @end
  414. /**
  415. 图片视频分享时错误枚举
  416. */
  417. typedef NS_ENUM(NSInteger, WBSDKMediaTransferErrorCode)
  418. {
  419. WBSDKMediaTransferAlbumPermissionError = 0,//相册权限
  420. WBSDKMediaTransferAlbumWriteError = 1,//相册写入错误
  421. WBSDKMediaTransferAlbumAssetTypeError = 2,//资源类型错误
  422. };
  423. /**
  424. 图片视频分享协议
  425. */
  426. @protocol WBMediaTransferProtocol <NSObject>
  427. /**
  428. 数据准备成功回调
  429. */
  430. -(void)wbsdk_TransferDidReceiveObject:(id)object;
  431. /**
  432. 数据准备失败回调
  433. */
  434. -(void)wbsdk_TransferDidFailWithErrorCode:(WBSDKMediaTransferErrorCode)errorCode andError:(NSError*)error;
  435. @end
  436. /**
  437. 消息中包含的图片数据对象
  438. */
  439. @interface WBImageObject : NSObject
  440. /**
  441. 图片真实数据内容,图片数据与图片数组finalAssetArray只能存在一项,图片数据不能为空并且大小不能超过10M,
  442. 网页分享使用图片数据
  443. @warning 大小不能超过10M
  444. */
  445. @property (nonatomic, strong) NSData *imageData;
  446. /**
  447. 是否分享到story
  448. */
  449. @property (nonatomic) BOOL isShareToStory DEPRECATED_MSG_ATTRIBUTE("shareToStory is deprecated");
  450. /**
  451. 返回一个 WBImageObject 对象
  452. @return 返回一个*自动释放的*WBImageObject对象
  453. */
  454. + (id)object;
  455. /**
  456. 返回一个 UIImage 对象
  457. @return 返回一个*自动释放的*UIImage对象
  458. */
  459. - (UIImage *)image;
  460. /**
  461. 多图分享委托
  462. */
  463. @property(nonatomic,weak)id<WBMediaTransferProtocol> delegate;
  464. /**
  465. 图片对象添加图片数组 图片数据一共不能超过30MB
  466. */
  467. - (void)addImages:(NSArray<UIImage *>*)imageArray;
  468. /**
  469. 多图最终传递对象
  470. */
  471. -(NSArray*)finalAssetArray;
  472. @end
  473. @interface WBNewVideoObject : NSObject
  474. /**
  475. 返回一个 WBNewVideoObject 对象
  476. @return 返回一个*自动释放的*WBNewVideoObject对象
  477. */
  478. + (id)object;
  479. /**
  480. 是否分享到story
  481. */
  482. @property (nonatomic) BOOL isShareToStory DEPRECATED_MSG_ATTRIBUTE("shareToStory is deprecated");
  483. /**
  484. 多图分享委托
  485. */
  486. @property(nonatomic,weak)id<WBMediaTransferProtocol> delegate;
  487. /**
  488. 视频对象添加视频 视频数据不能超过50MB
  489. */
  490. -(void)addVideo:(NSURL*)videoUrl;
  491. /**
  492. 视频最终传递对象
  493. */
  494. -(NSString*)finalAsset;
  495. @end
  496. #pragma mark - Message Media Objects
  497. /**
  498. 分享多媒体已经弃用 请不要用相关api
  499. 消息中包含的多媒体数据对象基类,该类后期会被废弃,在发布器不再显示为linkcard样式,只显示为普通网络连接
  500. */
  501. @interface WBBaseMediaObject : NSObject
  502. /**
  503. 对象唯一ID,用于唯一标识一个多媒体内容
  504. 当第三方应用分享多媒体内容到微博时,应该将此参数设置为被分享的内容在自己的系统中的唯一标识
  505. @warning 不能为空,长度小于255
  506. */
  507. @property (nonatomic, strong) NSString * _Nullable objectID;
  508. /**
  509. 多媒体内容标题
  510. @warning 不能为空且长度小于1k
  511. */
  512. @property (nonatomic, strong) NSString * _Nullable title;
  513. /**
  514. 多媒体内容描述
  515. @warning 长度小于1k
  516. */
  517. @property (nonatomic, strong) NSString * _Nullable description;
  518. /**
  519. 多媒体内容缩略图
  520. @warning 大小小于32k
  521. */
  522. @property (nonatomic, strong) NSData * _Nullable thumbnailData;
  523. /**
  524. 点击多媒体内容之后呼起第三方应用特定页面的scheme
  525. @warning 长度小于255
  526. */
  527. @property (nonatomic, strong) NSString * _Nullable scheme;
  528. /**
  529. 返回一个 WBBaseMediaObject 对象
  530. @return 返回一个*自动释放的*WBBaseMediaObject对象
  531. */
  532. + (id _Nullable )object DEPRECATED_MSG_ATTRIBUTE("WBBaseMediaObject is deprecated");
  533. @end
  534. #pragma mark - Message WebPage Objects
  535. /**
  536. 分享多媒体已经弃用 请不要用相关api
  537. 消息中包含的网页数据对象
  538. */
  539. @interface WBWebpageObject : WBBaseMediaObject
  540. /**
  541. 网页的url地址
  542. @warning 不能为空且长度不能超过255
  543. */
  544. @property (nonatomic, strong) NSString * _Nullable webpageUrl DEPRECATED_MSG_ATTRIBUTE("webpageUrl is deprecated");
  545. @end