UMSocialPlatformConfig.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439
  1. //
  2. // UMSocialPlatformConfig.h
  3. // UMSocialSDK
  4. //
  5. // Created by 张军华 on 16/8/5.
  6. // Copyright © 2016年 dongjianxiong. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <UIKit/UIKit.h>
  10. /**
  11. 新浪微博
  12. */
  13. extern NSString *const UMSPlatformNameSina;
  14. /**
  15. 腾讯微博
  16. */
  17. extern NSString *const UMSPlatformNameTencentWb;
  18. /**
  19. 钉钉
  20. */
  21. extern NSString *const UMSPlatformNameDingDing;
  22. /**
  23. 人人网
  24. */
  25. extern NSString *const UMSPlatformNameRenren;
  26. /**
  27. 豆瓣
  28. */
  29. extern NSString *const UMSPlatformNameDouban;
  30. /**
  31. QQ空间
  32. */
  33. extern NSString *const UMSPlatformNameQzone;
  34. /**
  35. 邮箱
  36. */
  37. extern NSString *const UMSPlatformNameEmail;
  38. /**
  39. 短信
  40. */
  41. extern NSString *const UMSPlatformNameSms;
  42. /**
  43. 微信好友
  44. */
  45. extern NSString *const UMSPlatformNameWechatSession;
  46. /**
  47. 微信朋友圈
  48. */
  49. extern NSString *const UMSPlatformNameWechatTimeline;
  50. /**
  51. 微信收藏
  52. */
  53. extern NSString *const UMSPlatformNameWechatFavorite;
  54. /**
  55. 支付宝好友
  56. */
  57. extern NSString *const UMSPlatformNameAlipaySession;
  58. /**
  59. 手机QQ
  60. */
  61. extern NSString *const UMSPlatformNameQQ;
  62. /**
  63. Tencent Tim
  64. */
  65. extern NSString *const UMSPlatformNameTim;
  66. /**
  67. Facebook
  68. */
  69. extern NSString *const UMSPlatformNameFacebook;
  70. /**
  71. Twitter
  72. */
  73. extern NSString *const UMSPlatformNameTwitter;
  74. /**
  75. 易信好友
  76. */
  77. extern NSString *const UMSPlatformNameYXSession;
  78. /**
  79. 易信朋友圈
  80. */
  81. extern NSString *const UMSPlatformNameYXTimeline;
  82. /**
  83. 来往好友
  84. */
  85. extern NSString *const UMSPlatformNameLWSession;
  86. /**
  87. 来往朋友圈
  88. */
  89. extern NSString *const UMSPlatformNameLWTimeline;
  90. /**
  91. 分享到Instragram
  92. */
  93. extern NSString *const UMSPlatformNameInstagram;
  94. /**
  95. 分享到Whatsapp
  96. */
  97. extern NSString *const UMSPlatformNameWhatsapp;
  98. /**
  99. 分享到Line
  100. */
  101. extern NSString *const UMSPlatformNameLine;
  102. /**
  103. 分享到Tumblr
  104. */
  105. extern NSString *const UMSPlatformNameTumblr;
  106. /**
  107. 领英
  108. */
  109. extern NSString *const UMSPlatformNameLinkedin;
  110. /**
  111. 分享到Pinterest
  112. */
  113. extern NSString *const UMSPlatformNamePinterest;
  114. /**
  115. 分享到KakaoTalk
  116. */
  117. extern NSString *const UMSPlatformNameKakaoTalk;
  118. /**
  119. 分享到Flickr
  120. */
  121. extern NSString *const UMSPlatformNameFlickr;
  122. /**
  123. * 有道云笔记
  124. */
  125. extern NSString *const UMSPlatformNameYouDaoNote;
  126. /**
  127. * 印象笔记
  128. */
  129. extern NSString *const UMSPlatformNameEverNote;
  130. /**
  131. * google+
  132. */
  133. extern NSString *const UMSPlatformNameGooglePlus;
  134. /**
  135. * Pocket
  136. */
  137. extern NSString *const UMSPlatformNamePocket;
  138. /**
  139. * dropbox
  140. */
  141. extern NSString *const UMSPlatformNameDropBox;
  142. /**
  143. * vkontakte
  144. */
  145. extern NSString *const UMSPlatformNameVKontakte;
  146. /**
  147. * FaceBookMessenger
  148. */
  149. extern NSString *const UMSPlatformNameFaceBookMessenger;
  150. /**
  151. * 授权,分享,UserProfile等操作的回调
  152. *
  153. * @param result 表示回调的结果
  154. * @param error 表示回调的错误码
  155. */
  156. typedef void (^UMSocialRequestCompletionHandler)(id result,NSError *error);
  157. /**
  158. * 授权,分享,UserProfile等操作的回调
  159. *
  160. * @param shareResponse 表示回调的结果
  161. * @param error 表示回调的错误码
  162. */
  163. typedef void (^UMSocialShareCompletionHandler)(id shareResponse,NSError *error);
  164. /**
  165. * 授权,分享,UserProfile等操作的回调
  166. *
  167. * @param authResponse 表示回调的结果
  168. * @param error 表示回调的错误码
  169. */
  170. typedef void (^UMSocialAuthCompletionHandler)(id authResponse,NSError *error);
  171. /**
  172. * 授权,分享,UserProfile等操作的回调
  173. *
  174. * @param userInfoResponse 表示回调的结果
  175. * @param error 表示回调的错误码
  176. */
  177. typedef void (^UMSocialGetUserInfoCompletionHandler)(id userInfoResponse,NSError *error);
  178. /////////////////////////////////////////////////////////////////////////////
  179. //平台的失败错误码--start
  180. /////////////////////////////////////////////////////////////////////////////
  181. /**
  182. * U-Share返回错误类型
  183. */
  184. typedef NS_ENUM(NSInteger, UMSocialPlatformErrorType) {
  185. UMSocialPlatformErrorType_Unknow = 2000, // 未知错误
  186. UMSocialPlatformErrorType_NotSupport = 2001, // 没有配置-ObjC, 或则SDK版本不支持或则客户端版本不支持
  187. UMSocialPlatformErrorType_AuthorizeFailed = 2002, // 授权失败
  188. UMSocialPlatformErrorType_ShareFailed = 2003, // 分享失败
  189. UMSocialPlatformErrorType_RequestForUserProfileFailed = 2004, // 请求用户信息失败
  190. UMSocialPlatformErrorType_ShareDataNil = 2005, // 分享内容为空
  191. UMSocialPlatformErrorType_ShareDataTypeIllegal = 2006, // 分享内容不支持
  192. UMSocialPlatformErrorType_CheckUrlSchemaFail = 2007, // schemaurl fail
  193. UMSocialPlatformErrorType_NotInstall = 2008, // 应用未安装
  194. UMSocialPlatformErrorType_Cancel = 2009, // 取消操作
  195. UMSocialPlatformErrorType_NotNetWork = 2010, // 网络异常
  196. UMSocialPlatformErrorType_SourceError = 2011, // 第三方错误
  197. UMSocialPlatformErrorType_ProtocolNotOverride = 2013, // 对应的 UMSocialPlatformProvider的方法没有实现
  198. UMSocialPlatformErrorType_NotUsingHttps = 2014, // 没有用https的请求,@see UMSocialGlobal isUsingHttpsWhenShareContent
  199. };
  200. /** The domain name used for the UMSocialPlatformErrorType */
  201. extern NSString* const UMSocialPlatformErrorDomain;
  202. /////////////////////////////////////////////////////////////////////////////
  203. //平台的失败错误码--end
  204. /////////////////////////////////////////////////////////////////////////////
  205. /////////////////////////////////////////////////////////////////////////////
  206. //平台的特性--begin
  207. /////////////////////////////////////////////////////////////////////////////
  208. /**
  209. * 平台的特性枚举变量
  210. */
  211. typedef NS_OPTIONS(NSUInteger, UMSocialPlatformFeature)
  212. {
  213. UMSocialPlatformFeature_None = 0,
  214. //App
  215. UMSocialPlatformFeature_IsAppInstalled = 1 << 0,
  216. UMSocialPlatformFeature_IsCanOpenApp = 1 << 1,
  217. UMSocialPlatformFeature_IsAppApiSupport = 1 << 2,
  218. //Authorize
  219. UMSocialPlatformFeature_IsCanAuthorize = 1 << 10,
  220. UMSocialPlatformFeature_IsCanWebViewAuthorize = 1 << 11,
  221. //SSOShare
  222. UMSocialPlatformFeature_IsCanShare_Text = 1 << 22,
  223. UMSocialPlatformFeature_IsCanShare_Image = 1 << 23,
  224. UMSocialPlatformFeature_IsCanShare_Media = 1 << 24,
  225. UMSocialPlatformFeature_IsCanShare_TextAndImage = 1 << 25,
  226. UMSocialPlatformFeature_IsCanShare_TextAndMedia = 1 << 26,
  227. //mask
  228. UMSocialPlatformFeature_Mask = 0xFFFFFFFF,
  229. };
  230. /////////////////////////////////////////////////////////////////////////////
  231. //平台的特性--end
  232. /////////////////////////////////////////////////////////////////////////////
  233. /////////////////////////////////////////////////////////////////////////////
  234. //平台的类型--start
  235. /////////////////////////////////////////////////////////////////////////////
  236. typedef NS_ENUM(NSInteger,UMSocialPlatformType)
  237. {
  238. UMSocialPlatformType_UnKnown = -2,
  239. //预定义的平台
  240. UMSocialPlatformType_Predefine_Begin = -1,
  241. UMSocialPlatformType_Sina = 0, //新浪
  242. UMSocialPlatformType_WechatSession = 1, //微信聊天
  243. UMSocialPlatformType_WechatTimeLine = 2,//微信朋友圈
  244. UMSocialPlatformType_WechatFavorite = 3,//微信收藏
  245. UMSocialPlatformType_QQ = 4,//QQ聊天页面
  246. UMSocialPlatformType_Qzone = 5,//qq空间
  247. UMSocialPlatformType_TencentWb = 6,//腾讯微博
  248. UMSocialPlatformType_AlipaySession = 7,//支付宝聊天页面
  249. UMSocialPlatformType_YixinSession = 8,//易信聊天页面
  250. UMSocialPlatformType_YixinTimeLine = 9,//易信朋友圈
  251. UMSocialPlatformType_YixinFavorite = 10,//易信收藏
  252. UMSocialPlatformType_LaiWangSession = 11,//点点虫(原来往)聊天页面
  253. UMSocialPlatformType_LaiWangTimeLine = 12,//点点虫动态
  254. UMSocialPlatformType_Sms = 13,//短信
  255. UMSocialPlatformType_Email = 14,//邮件
  256. UMSocialPlatformType_Renren = 15,//人人
  257. UMSocialPlatformType_Facebook = 16,//Facebook
  258. UMSocialPlatformType_Twitter = 17,//Twitter
  259. UMSocialPlatformType_Douban = 18,//豆瓣
  260. UMSocialPlatformType_KakaoTalk = 19,//KakaoTalk
  261. UMSocialPlatformType_Pinterest = 20,//Pinteres
  262. UMSocialPlatformType_Line = 21,//Line
  263. UMSocialPlatformType_Linkedin = 22,//领英
  264. UMSocialPlatformType_Flickr = 23,//Flickr
  265. UMSocialPlatformType_Tumblr = 24,//Tumblr
  266. UMSocialPlatformType_Instagram = 25,//Instagram
  267. UMSocialPlatformType_Whatsapp = 26,//Whatsapp
  268. UMSocialPlatformType_DingDing = 27,//钉钉
  269. UMSocialPlatformType_YouDaoNote = 28,//有道云笔记
  270. UMSocialPlatformType_EverNote = 29,//印象笔记
  271. UMSocialPlatformType_GooglePlus = 30,//Google+
  272. UMSocialPlatformType_Pocket = 31,//Pocket
  273. UMSocialPlatformType_DropBox = 32,//dropbox
  274. UMSocialPlatformType_VKontakte = 33,//vkontakte
  275. UMSocialPlatformType_FaceBookMessenger = 34,//FaceBookMessenger
  276. UMSocialPlatformType_Tim = 35,// Tencent TIM
  277. UMSocialPlatformType_Predefine_end = 999,
  278. //用户自定义的平台
  279. UMSocialPlatformType_UserDefine_Begin = 1000,
  280. UMSocialPlatformType_UserDefine_End = 2000,
  281. };
  282. /////////////////////////////////////////////////////////////////////////////
  283. //平台的类型--end
  284. /////////////////////////////////////////////////////////////////////////////
  285. //通过图片名称读取UMSocialSDKResources.bundle里的平台icon
  286. #define UMSocialPlatformIconWithName(name) [NSString stringWithFormat:@"UMSocialSDKResources.bundle/SnsPlatform/%@",name]
  287. ////通过图片名称读取UMSocialSDKResources.bundle/Buttons/中的图片
  288. #define UMSocialButtonImageWithName(name) [NSString stringWithFormat:@"UMSocialSDKResources.bundle/Buttons/%@",name]
  289. //
  290. /** 本地化 */
  291. #define UMLocalizedString(key,defaultValue) NSLocalizedStringWithDefaultValue(key,@"UMSocialLocalizable", [NSBundle mainBundle], defaultValue, nil)
  292. /**
  293. * 平台配置类
  294. */
  295. @interface UMSocialPlatformConfig : NSObject
  296. @property(nonatomic,strong)NSString* appKey;
  297. @property(nonatomic,strong)NSString* appSecret;
  298. @property(nonatomic,strong)NSString* redirectURL;
  299. /**
  300. * 根据平台类型获得平台名称
  301. *
  302. * @param platformType 平台类型
  303. * @see UMSocialPlatformType
  304. *
  305. * @return 返回对应的平台名称
  306. */
  307. + (NSString *)platformNameWithPlatformType:(UMSocialPlatformType)platformType;
  308. /**
  309. * 根据平台的类型返回对应平台的对象
  310. *
  311. * @param platformType 平台类型
  312. *
  313. * @return 返回对应的平台对象
  314. */
  315. + (id)platformHandlerWithPlatformType:(UMSocialPlatformType)platformType;
  316. /**
  317. * 创建错误类型
  318. *
  319. * @param errorType 平台类型
  320. * @param userInfo 用户的自定义信息userInfo
  321. *
  322. * @return 返回错误对象
  323. */
  324. + (NSError *)errorWithSocialErrorType:(UMSocialPlatformErrorType)errorType userInfo:(id)userInfo;
  325. @end
  326. /**
  327. * 云端授权/分享编辑页面配置类
  328. * 云端授权/分享页面目前适用于腾讯微博、豆瓣、人人的授权和分享编辑页面的自定义配置
  329. */
  330. @interface UMSocialCloudViewConfig : NSObject
  331. /**
  332. 授权页面
  333. */
  334. @property (nonatomic, strong) NSString *authViewTitle;
  335. @property (nonatomic, strong) UIColor *authViewTitleColor;
  336. @property( nonatomic, strong) UIColor *authViewNavBarColor;
  337. // button仅需改动title或image即可,touch事件内部触发
  338. @property (nonatomic, strong) UIButton *authViewCloseButton;
  339. @property (nonatomic, strong) NSString *editViewTitle;
  340. @property (nonatomic, strong) UIColor *editViewTitleColor;
  341. @property( nonatomic, strong) UIColor *editViewNavBarColor;
  342. // button仅需改动title或image即可,touch事件内部触发
  343. @property (nonatomic, strong) UIButton *editViewCloseButton;
  344. @property (nonatomic, strong) UIButton *editViewShareButton;
  345. + (instancetype)sharedInstance;
  346. @end