ShareSDK.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. //
  2. // ShareSDK.h
  3. // ShareSDK
  4. //
  5. // Created by 冯 鸿杰 on 15/2/5.
  6. // Copyright (c) 2015年 掌淘科技. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "SSDKRegister.h"
  10. #import "NSMutableDictionary+SSDKShare.h"
  11. #import "SSDKDataModel.h"
  12. #import "SSDKUser.h"
  13. #import "SSDKCredential.h"
  14. #import "SSDKSession.h"
  15. #import "SSDKImage.h"
  16. #import "SSDKContentEntity.h"
  17. #import "SSDKAuthViewStyle.h"
  18. #import "NSMutableDictionary+SSDKInit.h" //Deprecated
  19. #import "SSDKShareVideoModel.h"
  20. /**
  21. 错误码
  22. - 200000: 未知错误
  23. - 200100: 未初始化平台
  24. - 200101: 参数错误
  25. - 200102: 不支持的分享类型
  26. - 200103: 尚未设置URL Scheme
  27. - 200104: 尚未安装客户端
  28. - 200105: 不支持的功能
  29. - 200201: SDK集成错误,缺少必要文件
  30. - 200204: 授权Token过期
  31. - 200205: 用户尚未授权
  32. - 200300: 第三方SDK Api返回错误
  33. - 200301: 第三方SDK 回调错误
  34. - 200302: API请求失败
  35. - 200303: try块捕捉到异常
  36. - 200500: 权限拒绝
  37. */
  38. /**
  39. * ShareSDK APIs
  40. */
  41. @interface ShareSDK : NSObject
  42. #pragma mark - 初始化
  43. /**
  44. ShareSDK 平台注册方法
  45. @param importHandler 用于设置各平台注册信息,也可在mob管理后台进行注册
  46. */
  47. + (void)registPlatforms:(void(^)(SSDKRegister *platformsRegister))importHandler;
  48. #pragma mark - 授权
  49. /**
  50. 授权
  51. @param platformType 平台类型
  52. @param settings 授权设置,接受scopes属性设置,如新浪微博关注官方微博:@{@"scopes" : @[@"follow_app_official_microblog"]},类似“follow_app_official_microblog”这些字段是各个社交平台提供的。QQ平台如设置二维码授权,添加字段为QQAuthType:@{@"QQAuthType":@1}, 0为网页账号密码登录授权
  53. @param stateChangedHandler 授权状态变更回调处理
  54. @return 会话id
  55. */
  56. + (SSDKSession *)authorize:(SSDKPlatformType)platformType
  57. settings:(NSDictionary *)settings
  58. onStateChanged:(SSDKAuthorizeStateChangedHandler)stateChangedHandler;
  59. /**
  60. * 判断分享平台是否授权
  61. *
  62. * @param platformTypem 平台类型
  63. * @return YES 表示已授权,NO 表示尚未授权
  64. */
  65. + (BOOL)hasAuthorized:(SSDKPlatformType)platformTypem;
  66. /**
  67. * 取消分享平台授权
  68. *
  69. * @param platformType 平台类型
  70. */
  71. + (void)cancelAuthorize:(SSDKPlatformType)platformType result:(void(^)(NSError *error))result;
  72. #pragma mark - 用户
  73. /**
  74. 获取授权用户信息
  75. @param platformType 平台类型
  76. @param stateChangedHandler 状态变更回调处理
  77. */
  78. + (SSDKSession *)getUserInfo:(SSDKPlatformType)platformType
  79. onStateChanged:(SSDKGetUserStateChangedHandler)stateChangedHandler;
  80. #pragma mark - 分享
  81. /**
  82. 分享内容
  83. @param platformType 平台类型
  84. @param parameters 分享参数
  85. @param stateChangedHandler 状态变更回调处理
  86. @return 会话
  87. */
  88. + (SSDKSession *)share:(SSDKPlatformType)platformType
  89. parameters:(NSMutableDictionary *)parameters
  90. onStateChanged:(SSDKShareStateChangedHandler)stateChangedHandler;
  91. /**
  92. 以系统分享的样式分享内容(目前该方法为了解决Twitter分享时的授权权限问题,目前该方法支持 纯文字 链接 单图 多图 图文(注:单图 多图 图文,图片不能超过四张)视频(注:仅支持本地视频)))
  93. @param platformType 平台类型
  94. @param parameters 分享参数
  95. @param stateChangedHandler 状态变更回调处理
  96. @return 会话
  97. */
  98. + (SSDKSession *)shareByActivityViewController:(SSDKPlatformType)platformType
  99. parameters:(NSMutableDictionary *)parameters
  100. onStateChanged:(SSDKShareStateChangedHandler)stateChangedHandler;
  101. #pragma mark - Deprecated
  102. typedef void(^SSDKImportHandler) (SSDKPlatformType platformType) __deprecated_msg("Discard form v4.2.0");
  103. typedef void(^SSDKConfigurationHandler) (SSDKPlatformType platformType, NSMutableDictionary *appInfo) __deprecated_msg("Discard form v4.2.0");
  104. + (void)registerActivePlatforms:(NSArray *)activePlatforms
  105. onImport:(SSDKImportHandler)importHandler
  106. onConfiguration:(SSDKConfigurationHandler)configurationHandler __deprecated_msg("Discard form v4.2.0. Use 'registPlatforms:' instead.");
  107. + (void)cancelAuthorize:(SSDKPlatformType)platformType __deprecated_msg("Discard form v4.2.0. Use 'cancelAuthorize:result:' instead.");
  108. @end