// // UMSocialPlatformConfig.h // UMSocialSDK // // Created by 张军华 on 16/8/5. // Copyright © 2016年 dongjianxiong. All rights reserved. // #import #import /** 新浪微博 */ extern NSString *const UMSPlatformNameSina; /** 腾讯微博 */ extern NSString *const UMSPlatformNameTencentWb; /** 钉钉 */ extern NSString *const UMSPlatformNameDingDing; /** 人人网 */ extern NSString *const UMSPlatformNameRenren; /** 豆瓣 */ extern NSString *const UMSPlatformNameDouban; /** QQ空间 */ extern NSString *const UMSPlatformNameQzone; /** 邮箱 */ extern NSString *const UMSPlatformNameEmail; /** 短信 */ extern NSString *const UMSPlatformNameSms; /** 微信好友 */ extern NSString *const UMSPlatformNameWechatSession; /** 微信朋友圈 */ extern NSString *const UMSPlatformNameWechatTimeline; /** 微信收藏 */ extern NSString *const UMSPlatformNameWechatFavorite; /** 支付宝好友 */ extern NSString *const UMSPlatformNameAlipaySession; /** 手机QQ */ extern NSString *const UMSPlatformNameQQ; /** Tencent Tim */ extern NSString *const UMSPlatformNameTim; /** Facebook */ extern NSString *const UMSPlatformNameFacebook; /** Twitter */ extern NSString *const UMSPlatformNameTwitter; /** 易信好友 */ extern NSString *const UMSPlatformNameYXSession; /** 易信朋友圈 */ extern NSString *const UMSPlatformNameYXTimeline; /** 来往好友 */ extern NSString *const UMSPlatformNameLWSession; /** 来往朋友圈 */ extern NSString *const UMSPlatformNameLWTimeline; /** 分享到Instragram */ extern NSString *const UMSPlatformNameInstagram; /** 分享到Whatsapp */ extern NSString *const UMSPlatformNameWhatsapp; /** 分享到Line */ extern NSString *const UMSPlatformNameLine; /** 分享到Tumblr */ extern NSString *const UMSPlatformNameTumblr; /** 领英 */ extern NSString *const UMSPlatformNameLinkedin; /** 分享到Pinterest */ extern NSString *const UMSPlatformNamePinterest; /** 分享到KakaoTalk */ extern NSString *const UMSPlatformNameKakaoTalk; /** 分享到Flickr */ extern NSString *const UMSPlatformNameFlickr; /** * 有道云笔记 */ extern NSString *const UMSPlatformNameYouDaoNote; /** * 印象笔记 */ extern NSString *const UMSPlatformNameEverNote; /** * google+ */ extern NSString *const UMSPlatformNameGooglePlus; /** * Pocket */ extern NSString *const UMSPlatformNamePocket; /** * dropbox */ extern NSString *const UMSPlatformNameDropBox; /** * vkontakte */ extern NSString *const UMSPlatformNameVKontakte; /** * FaceBookMessenger */ extern NSString *const UMSPlatformNameFaceBookMessenger; /** * 授权,分享,UserProfile等操作的回调 * * @param result 表示回调的结果 * @param error 表示回调的错误码 */ typedef void (^UMSocialRequestCompletionHandler)(id result,NSError *error); /** * 授权,分享,UserProfile等操作的回调 * * @param shareResponse 表示回调的结果 * @param error 表示回调的错误码 */ typedef void (^UMSocialShareCompletionHandler)(id shareResponse,NSError *error); /** * 授权,分享,UserProfile等操作的回调 * * @param authResponse 表示回调的结果 * @param error 表示回调的错误码 */ typedef void (^UMSocialAuthCompletionHandler)(id authResponse,NSError *error); /** * 授权,分享,UserProfile等操作的回调 * * @param userInfoResponse 表示回调的结果 * @param error 表示回调的错误码 */ typedef void (^UMSocialGetUserInfoCompletionHandler)(id userInfoResponse,NSError *error); ///////////////////////////////////////////////////////////////////////////// //平台的失败错误码--start ///////////////////////////////////////////////////////////////////////////// /** * U-Share返回错误类型 */ typedef NS_ENUM(NSInteger, UMSocialPlatformErrorType) { UMSocialPlatformErrorType_Unknow = 2000, // 未知错误 UMSocialPlatformErrorType_NotSupport = 2001, // 没有配置-ObjC, 或则SDK版本不支持或则客户端版本不支持 UMSocialPlatformErrorType_AuthorizeFailed = 2002, // 授权失败 UMSocialPlatformErrorType_ShareFailed = 2003, // 分享失败 UMSocialPlatformErrorType_RequestForUserProfileFailed = 2004, // 请求用户信息失败 UMSocialPlatformErrorType_ShareDataNil = 2005, // 分享内容为空 UMSocialPlatformErrorType_ShareDataTypeIllegal = 2006, // 分享内容不支持 UMSocialPlatformErrorType_CheckUrlSchemaFail = 2007, // schemaurl fail UMSocialPlatformErrorType_NotInstall = 2008, // 应用未安装 UMSocialPlatformErrorType_Cancel = 2009, // 取消操作 UMSocialPlatformErrorType_NotNetWork = 2010, // 网络异常 UMSocialPlatformErrorType_SourceError = 2011, // 第三方错误 UMSocialPlatformErrorType_ProtocolNotOverride = 2013, // 对应的 UMSocialPlatformProvider的方法没有实现 UMSocialPlatformErrorType_NotUsingHttps = 2014, // 没有用https的请求,@see UMSocialGlobal isUsingHttpsWhenShareContent }; /** The domain name used for the UMSocialPlatformErrorType */ extern NSString* const UMSocialPlatformErrorDomain; ///////////////////////////////////////////////////////////////////////////// //平台的失败错误码--end ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// //平台的特性--begin ///////////////////////////////////////////////////////////////////////////// /** * 平台的特性枚举变量 */ typedef NS_OPTIONS(NSUInteger, UMSocialPlatformFeature) { UMSocialPlatformFeature_None = 0, //App UMSocialPlatformFeature_IsAppInstalled = 1 << 0, UMSocialPlatformFeature_IsCanOpenApp = 1 << 1, UMSocialPlatformFeature_IsAppApiSupport = 1 << 2, //Authorize UMSocialPlatformFeature_IsCanAuthorize = 1 << 10, UMSocialPlatformFeature_IsCanWebViewAuthorize = 1 << 11, //SSOShare UMSocialPlatformFeature_IsCanShare_Text = 1 << 22, UMSocialPlatformFeature_IsCanShare_Image = 1 << 23, UMSocialPlatformFeature_IsCanShare_Media = 1 << 24, UMSocialPlatformFeature_IsCanShare_TextAndImage = 1 << 25, UMSocialPlatformFeature_IsCanShare_TextAndMedia = 1 << 26, //mask UMSocialPlatformFeature_Mask = 0xFFFFFFFF, }; ///////////////////////////////////////////////////////////////////////////// //平台的特性--end ///////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////// //平台的类型--start ///////////////////////////////////////////////////////////////////////////// typedef NS_ENUM(NSInteger,UMSocialPlatformType) { UMSocialPlatformType_UnKnown = -2, //预定义的平台 UMSocialPlatformType_Predefine_Begin = -1, UMSocialPlatformType_Sina = 0, //新浪 UMSocialPlatformType_WechatSession = 1, //微信聊天 UMSocialPlatformType_WechatTimeLine = 2,//微信朋友圈 UMSocialPlatformType_WechatFavorite = 3,//微信收藏 UMSocialPlatformType_QQ = 4,//QQ聊天页面 UMSocialPlatformType_Qzone = 5,//qq空间 UMSocialPlatformType_TencentWb = 6,//腾讯微博 UMSocialPlatformType_AlipaySession = 7,//支付宝聊天页面 UMSocialPlatformType_YixinSession = 8,//易信聊天页面 UMSocialPlatformType_YixinTimeLine = 9,//易信朋友圈 UMSocialPlatformType_YixinFavorite = 10,//易信收藏 UMSocialPlatformType_LaiWangSession = 11,//点点虫(原来往)聊天页面 UMSocialPlatformType_LaiWangTimeLine = 12,//点点虫动态 UMSocialPlatformType_Sms = 13,//短信 UMSocialPlatformType_Email = 14,//邮件 UMSocialPlatformType_Renren = 15,//人人 UMSocialPlatformType_Facebook = 16,//Facebook UMSocialPlatformType_Twitter = 17,//Twitter UMSocialPlatformType_Douban = 18,//豆瓣 UMSocialPlatformType_KakaoTalk = 19,//KakaoTalk UMSocialPlatformType_Pinterest = 20,//Pinteres UMSocialPlatformType_Line = 21,//Line UMSocialPlatformType_Linkedin = 22,//领英 UMSocialPlatformType_Flickr = 23,//Flickr UMSocialPlatformType_Tumblr = 24,//Tumblr UMSocialPlatformType_Instagram = 25,//Instagram UMSocialPlatformType_Whatsapp = 26,//Whatsapp UMSocialPlatformType_DingDing = 27,//钉钉 UMSocialPlatformType_YouDaoNote = 28,//有道云笔记 UMSocialPlatformType_EverNote = 29,//印象笔记 UMSocialPlatformType_GooglePlus = 30,//Google+ UMSocialPlatformType_Pocket = 31,//Pocket UMSocialPlatformType_DropBox = 32,//dropbox UMSocialPlatformType_VKontakte = 33,//vkontakte UMSocialPlatformType_FaceBookMessenger = 34,//FaceBookMessenger UMSocialPlatformType_Tim = 35,// Tencent TIM UMSocialPlatformType_Predefine_end = 999, //用户自定义的平台 UMSocialPlatformType_UserDefine_Begin = 1000, UMSocialPlatformType_UserDefine_End = 2000, }; ///////////////////////////////////////////////////////////////////////////// //平台的类型--end ///////////////////////////////////////////////////////////////////////////// //通过图片名称读取UMSocialSDKResources.bundle里的平台icon #define UMSocialPlatformIconWithName(name) [NSString stringWithFormat:@"UMSocialSDKResources.bundle/SnsPlatform/%@",name] ////通过图片名称读取UMSocialSDKResources.bundle/Buttons/中的图片 #define UMSocialButtonImageWithName(name) [NSString stringWithFormat:@"UMSocialSDKResources.bundle/Buttons/%@",name] // /** 本地化 */ #define UMLocalizedString(key,defaultValue) NSLocalizedStringWithDefaultValue(key,@"UMSocialLocalizable", [NSBundle mainBundle], defaultValue, nil) /** * 平台配置类 */ @interface UMSocialPlatformConfig : NSObject @property(nonatomic,strong)NSString* appKey; @property(nonatomic,strong)NSString* appSecret; @property(nonatomic,strong)NSString* redirectURL; /** * 根据平台类型获得平台名称 * * @param platformType 平台类型 * @see UMSocialPlatformType * * @return 返回对应的平台名称 */ + (NSString *)platformNameWithPlatformType:(UMSocialPlatformType)platformType; /** * 根据平台的类型返回对应平台的对象 * * @param platformType 平台类型 * * @return 返回对应的平台对象 */ + (id)platformHandlerWithPlatformType:(UMSocialPlatformType)platformType; /** * 创建错误类型 * * @param errorType 平台类型 * @param userInfo 用户的自定义信息userInfo * * @return 返回错误对象 */ + (NSError *)errorWithSocialErrorType:(UMSocialPlatformErrorType)errorType userInfo:(id)userInfo; @end /** * 云端授权/分享编辑页面配置类 * 云端授权/分享页面目前适用于腾讯微博、豆瓣、人人的授权和分享编辑页面的自定义配置 */ @interface UMSocialCloudViewConfig : NSObject /** 授权页面 */ @property (nonatomic, strong) NSString *authViewTitle; @property (nonatomic, strong) UIColor *authViewTitleColor; @property( nonatomic, strong) UIColor *authViewNavBarColor; // button仅需改动title或image即可,touch事件内部触发 @property (nonatomic, strong) UIButton *authViewCloseButton; @property (nonatomic, strong) NSString *editViewTitle; @property (nonatomic, strong) UIColor *editViewTitleColor; @property( nonatomic, strong) UIColor *editViewNavBarColor; // button仅需改动title或image即可,touch事件内部触发 @property (nonatomic, strong) UIButton *editViewCloseButton; @property (nonatomic, strong) UIButton *editViewShareButton; + (instancetype)sharedInstance; @end