UMSocialPlatformProvider.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  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. * 授权
  36. *
  37. * @param userInfo 用户的授权的自定义数据
  38. * @param completionHandler 授权后的回调
  39. * @discuss userInfo在有些平台可以带入,如果没有就传入nil.
  40. */
  41. -(void)umSocial_AuthorizeWithUserInfo:(NSDictionary *)userInfo
  42. withCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler;
  43. /**
  44. * 授权
  45. *
  46. * @param userInfo 用户的授权的自定义数据
  47. * @param completionHandler 授权后的回调
  48. * @parm viewController 分享需要的viewController
  49. * @discuss userInfo在有些平台可以带入,如果没有就传入nil.
  50. * 这个函数用于sms,email等需要传入viewController的平台
  51. */
  52. -(void)umSocial_AuthorizeWithUserInfo:(NSDictionary *)userInfo
  53. withViewController:(UIViewController*)viewController
  54. withCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler;
  55. /**
  56. * 分享
  57. *
  58. * @param object 分享的对象数据模型
  59. * @param completionHandler 分享后的回调
  60. */
  61. -(void)umSocial_ShareWithObject:(UMSocialMessageObject *)object
  62. withCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler;
  63. /**
  64. * 分享
  65. *
  66. * @param object 分享的对象数据模型
  67. * @param completionHandler 分享后的回调
  68. * @parm viewController 分享需要的viewController
  69. * @dicuss 这个函数用于sms,email等需要传入viewController的平台
  70. */
  71. -(void)umSocial_ShareWithObject:(UMSocialMessageObject *)object
  72. withViewController:(UIViewController*)viewController
  73. withCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler;
  74. /**
  75. * 取消授权
  76. *
  77. * @param completionHandler 授权后的回调
  78. * @discuss userInfo在有些平台可以带入,如果没有就传入nil.
  79. */
  80. -(void)umSocial_cancelAuthWithCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler;
  81. /**
  82. * 授权成功后获得用户的信息
  83. *
  84. * @param completionHandler 请求的回调
  85. */
  86. -(void)umSocial_RequestForUserProfileWithCompletionHandler:(UMSocialRequestCompletionHandler)completionHandler;
  87. /**
  88. * 获取用户信息
  89. * @param currentViewController 用于弹出类似邮件分享、短信分享等这样的系统页面
  90. * @param completion 回调
  91. */
  92. - (void)umSocial_RequestForUserProfileWithViewController:(id)currentViewController
  93. completion:(UMSocialRequestCompletionHandler)completion;
  94. /**
  95. * 清除平台的数据F
  96. */
  97. -(void)umSocial_clearCacheData;
  98. /**
  99. * 获得从sso或者web端回调到本app的回调
  100. *
  101. * @param url 第三方sdk的打开本app的回调的url
  102. *
  103. * @return 是否处理 YES代表处理成功,NO代表不处理
  104. */
  105. -(BOOL)umSocial_handleOpenURL:(NSURL *)url;
  106. -(BOOL)umSocial_handleOpenURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation;
  107. -(BOOL)umSocial_handleOpenURL:(NSURL *)url options:(NSDictionary*)options;
  108. #pragma mark - 平台的特性
  109. /**
  110. * 平台的特性
  111. *
  112. * @return 返回平台特性
  113. *
  114. */
  115. -(UMSocialPlatformFeature)umSocial_SupportedFeatures;
  116. /**
  117. * 平台的版本
  118. *
  119. * @return 当前平台sdk的version
  120. */
  121. -(NSString *)umSocial_PlatformSDKVersion;
  122. /**
  123. * 检查urlschema
  124. *
  125. */
  126. -(BOOL)checkUrlSchema;
  127. -(BOOL)umSocial_isInstall;
  128. -(BOOL)umSocial_isSupport;
  129. @end