UMSocialPlatformProvider.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. //
  2. // UMSocialPlatformProvider.h
  3. // UMSocialSDK
  4. //
  5. // Created by 张军华 on 16/8/4.
  6. // Copyright © 2016年 dongjianxiong. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <UIKit/UIKit.h>
  10. #import "UMSocialPlatformConfig.h"
  11. @class UMSocialMessageObject;
  12. /**
  13. * 每个平台的必须实现的协议
  14. */
  15. @protocol UMSocialPlatformProvider <NSObject>
  16. @optional
  17. /**
  18. * 当前UMSocialPlatformProvider对应操作的UMSocialPlatformType
  19. * @discuss 当前很多平台对应多个平台类型,出现一对多的关系
  20. * 例如:QQ提供UMSocialPlatformType_Qzone 和 UMSocialPlatformType_QQ,用户点击分享或者认证的时候,需要区分用户分享或者认证的对应的哪个平台
  21. */
  22. @property(nonatomic,assign)UMSocialPlatformType socialPlatformType;
  23. /**
  24. * 初始化平台
  25. *
  26. * @param appKey 对应的appkey
  27. * @param appSecret 对应的appSecret
  28. * @param redirectURL 对应的重定向url
  29. * @discuss appSecret和redirectURL如果平台必须要的话就传入,不需要就传入nil
  30. */
  31. -(void)umSocial_setAppKey:(NSString *)appKey
  32. withAppSecret:(NSString *)appSecret
  33. withRedirectURL:(NSString *)redirectURL;
  34. /**
  35. * 初始化注册的三方平台主动拉起App的回调场景
  36. *
  37. * @param platformType 对应的平台
  38. * @param completionHandler 对应的平台拉起app的回调
  39. * @discuss 必须在umSocial_setAppKey初始化后设置
  40. */
  41. -(void)umSocial_setLauchFromPlatform:(UMSocialPlatformType)platformType
  42. withCompletionHandler:(UMSocialLaunchFromPlatformCompletionHandler)completionHandler;
  43. /**
  44. * 授权
  45. *
  46. * @param userInfo 用户的授权的自定义数据
  47. * @param completionHandler 授权后的回调
  48. * @discuss userInfo在有些平台可以带入,如果没有就传入nil.
  49. */
  50. -(void)umSocial_AuthorizeWithUserInfo:(NSDictionary *)userInfo
  51. withCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler;
  52. /**
  53. * 授权
  54. *
  55. * @param userInfo 用户的授权的自定义数据
  56. * @param completionHandler 授权后的回调
  57. * @parm viewController 分享需要的viewController
  58. * @discuss userInfo在有些平台可以带入,如果没有就传入nil.
  59. * 这个函数用于sms,email等需要传入viewController的平台
  60. */
  61. -(void)umSocial_AuthorizeWithUserInfo:(NSDictionary *)userInfo
  62. withViewController:(UIViewController*)viewController
  63. withCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler;
  64. /**
  65. * 分享
  66. *
  67. * @param object 分享的对象数据模型
  68. * @param completionHandler 分享后的回调
  69. */
  70. -(void)umSocial_ShareWithObject:(UMSocialMessageObject *)object
  71. withCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler;
  72. /**
  73. * 分享
  74. *
  75. * @param object 分享的对象数据模型
  76. * @param completionHandler 分享后的回调
  77. * @parm viewController 分享需要的viewController
  78. * @dicuss 这个函数用于sms,email等需要传入viewController的平台
  79. */
  80. -(void)umSocial_ShareWithObject:(UMSocialMessageObject *)object
  81. withViewController:(UIViewController*)viewController
  82. withCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler;
  83. /**
  84. * 取消授权
  85. *
  86. * @param completionHandler 授权后的回调
  87. * @discuss userInfo在有些平台可以带入,如果没有就传入nil.
  88. */
  89. -(void)umSocial_cancelAuthWithCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler;
  90. /**
  91. * 授权成功后获得用户的信息
  92. *
  93. * @param completionHandler 请求的回调
  94. */
  95. -(void)umSocial_RequestForUserProfileWithCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler;
  96. /**
  97. * 获取用户信息
  98. * @param currentViewController 用于弹出类似邮件分享、短信分享等这样的系统页面
  99. * @param completion 回调
  100. */
  101. - (void)umSocial_RequestForUserProfileWithViewController:(id)currentViewController
  102. completion:(UMSocialRequestCompletionHandler)completion;
  103. /**
  104. * 清除平台的数据F
  105. */
  106. -(void)umSocial_clearCacheData;
  107. /**
  108. * 获得从sso或者web端回调到本app的回调
  109. *
  110. * @param url 第三方sdk的打开本app的回调的url
  111. *
  112. * @return 是否处理 YES代表处理成功,NO代表不处理
  113. */
  114. -(BOOL)umSocial_handleOpenURL:(NSURL *)url;
  115. -(BOOL)umSocial_handleOpenURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;
  116. -(BOOL)umSocial_handleOpenURL:(NSURL *)url options:(NSDictionary*)options;
  117. /**
  118. * UniversalLink回调到本app的回调
  119. *
  120. * @param userActivity @see NSUserActivity
  121. *
  122. * @return 是否处理 YES代表处理成功,NO代表不处理
  123. */
  124. -(BOOL)umSocial_handleUniversalLink:(id)userActivity options:(NSDictionary*)options;
  125. #pragma mark - 平台的特性
  126. /**
  127. * 平台的特性
  128. *
  129. * @return 返回平台特性
  130. *
  131. */
  132. -(UMSocialPlatformFeature)umSocial_SupportedFeatures;
  133. /**
  134. * 平台的版本
  135. *
  136. * @return 当前平台sdk的version
  137. */
  138. -(NSString *)umSocial_PlatformSDKVersion;
  139. /**
  140. * 检查urlschema
  141. *
  142. */
  143. -(BOOL)checkUrlSchema;
  144. -(BOOL)umSocial_isInstall;
  145. -(BOOL)umSocial_isSupport;
  146. @end