123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315 |
- //
- // UMSocialSnsPlatformManager.h
- // SocialSDK
- //
- // Created by yeahugo on 13-1-15.
- // Copyright (c) 2013年 Umeng. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import "UMSocialControllerService.h"
- /**
- 新浪微博
- */
- extern NSString *const UMShareToSina;
- /**
- 腾讯微博
- */
- extern NSString *const UMShareToTencent;
- /**
- 人人网
- */
- extern NSString *const UMShareToRenren;
- /**
- 豆瓣
- */
- extern NSString *const UMShareToDouban;
- /**
- QQ空间
- */
- extern NSString *const UMShareToQzone;
- /**
- 邮箱
- */
- extern NSString *const UMShareToEmail;
- /**
- 短信
- */
- extern NSString *const UMShareToSms;
- /**
- 微信好友
- */
- extern NSString *const UMShareToWechatSession;
- /**
- 微信朋友圈
- */
- extern NSString *const UMShareToWechatTimeline;
- /**
- 微信收藏
- */
- extern NSString *const UMShareToWechatFavorite;
- /**
- 支付宝好友
- */
- extern NSString *const UMShareToAlipaySession;
- /**
- 手机QQ
- */
- extern NSString *const UMShareToQQ;
- /**
- Facebook
- */
- extern NSString *const UMShareToFacebook;
- /**
- Twitter
- */
- extern NSString *const UMShareToTwitter;
- /**
- 易信好友
- */
- extern NSString *const UMShareToYXSession;
- /**
- 易信朋友圈
- */
- extern NSString *const UMShareToYXTimeline;
- /**
- 来往好友
- */
- extern NSString *const UMShareToLWSession;
- /**
- 来往朋友圈
- */
- extern NSString *const UMShareToLWTimeline;
- /**
- 分享到Instragram
- */
- extern NSString *const UMShareToInstagram;
- /**
- 分享到Whatsapp
- */
- extern NSString *const UMShareToWhatsapp;
- /**
- 分享到Line
- */
- extern NSString *const UMShareToLine;
- /**
- 分享到Tumblr
- */
- extern NSString *const UMShareToTumblr;
- /**
- 分享到Pinterest
- */
- extern NSString *const UMShareToPinterest;
- /**
- 分享到KakaoTalk
- */
- extern NSString *const UMShareToKakaoTalk;
- /**
- 分享到Flickr
- */
- extern NSString *const UMShareToFlickr;
- /**
- 分享平台
-
- */
- typedef enum {
- UMSocialSnsTypeNone = 0,
- UMSocialSnsTypeSina = 9, //sina weibo
- UMSocialSnsTypeQzone = 10,
- UMSocialSnsTypeTenc, //tencent weibo
- UMSocialSnsTypeRenr, //renren
- UMSocialSnsTypeDouban, //douban
- UMSocialSnsTypeWechatSession,
- UMSocialSnsTypeWechatTimeline,
- UMSocialSnsTypeWechatFavorite,
- UMSocialSnsTypeEmail,
- UMSocialSnsTypeSms,
- UMSocialSnsTypeMobileQQ,
- UMSocialSnsTypeFacebook,
- UMSocialSnsTypeTwitter,
- UMSocialSnsTypeYiXinSession,
- UMSocialSnsTypeYiXinTimeline,
- UMSocialSnsTypeLaiWangSession,
- UMSocialSnsTypeLaiWangTimeline,
- UMSocialSnsTypeInstagram,
- UMSocialSnsTypeWhatsApp,
- UMSocialSnsTypeLine,
- UMSocialSnsTypeTumblr,
- UMSocialSnsTypeKakaoTalk,
- UMSocialSnsTypeFlickr,
- UMSocialSnsTypePinterest,
- UMSocialSnsTypeAlipaySession,
- UMSocialSnsTypeNew
- } UMSocialSnsType;
- @class UMSocialControllerService;
- /** 定义响应点击平台后的block对象
-
- @param presentingController 点击后弹出的分享页面或者授权页面所在的UIViewController对象
- @param socialControllerService 可以用此对象的socialControllerService.socialData可以获取分享内嵌文字、内嵌图片,分享次数等
- @param isPresentInController 如果YES代表弹出(present)到当前UIViewController,否则push到UIViewController的navigationController
-
- */
- typedef void (^UMSocialSnsPlatformClickHandler)(UIViewController *presentingController, UMSocialControllerService * socialControllerService, BOOL isPresentInController);
- /** 定义响应点击各平台授权登录后的block对象
-
- @param presentingController 点击后弹出的分享页面或者授权页面所在的UIViewController对象
- @param socialControllerService 可以用此对象的socialControllerService.socialData可以获取分享内嵌文字、内嵌图片,分享次数等
- @param isPresentInController 如果YES代表弹出(present)到当前UIViewController,否则push到UIViewController的navigationController
- @param completion 授权完成之后的回调对象,返回的response参数表示成功与否和拿到的授权信息
-
- */
- typedef void (^UMSocialSnsPlatformLoginHandler)(UIViewController *presentingController, UMSocialControllerService * socialControllerService, BOOL isPresentInController, UMSocialDataServiceCompletion completion);
- /**
- Sns平台类,用`platformName`作为标识,指定显示名称、显示的图片,点击之后的响应。
- */
- @interface UMSocialSnsPlatform : NSObject
- ///---------------------------------------
- /// @name 平台属性
- ///---------------------------------------
- /**
- 平台标示符
- */
- @property (nonatomic, copy) NSString *platformName;
- /**
- 显示名称
- */
- @property (nonatomic, copy) NSString *displayName;
- /**
- 登录名称
- */
- @property (nonatomic, copy) NSString *loginName;
- /**
- 分享类型
- */
- @property (nonatomic, assign) UMSocialSnsType shareToType;
- /**
- 大图片的文件名,用于`UMSocialIconActionSheet`
- */
- @property (nonatomic, copy) NSString *bigImageName;
- /**
- 小图片的文件名,用于分享列表、登录、个人中心、评论编辑页面等
- */
- @property (nonatomic, copy) NSString *smallImageName;
- /**
- 无色的小图片文件名,用于评论编辑页面显示没有授权状态
- */
- @property (nonatomic ,copy) NSString *smallImageOffName;
- /**
- 处理点击分享事件后的block对象
- */
- @property(nonatomic, copy) UMSocialSnsPlatformClickHandler snsClickHandler;
- /**
- 处理点击登录事件后的block对象
- */
- @property(nonatomic, copy) UMSocialSnsPlatformLoginHandler loginClickHandler;
- /**
- 是否需要登录授权
- */
- @property(nonatomic, assign) BOOL needLogin;
- /**
- 标志是否有webView授权
- */
- @property(nonatomic, assign) BOOL haveWebViewAuth;
- /**
- 初始化方法
-
- @param platformName 作为该对象标识的平台名
- */
- -(id)initWithPlatformName:(NSString *)platformName;
- @end
- /*
- Sns平台类管理者类
- */
- @interface UMSocialSnsPlatformManager : NSObject
- /**
- sns平台配置数组,此数组由allSnsArray转换,只包含平台名作为元素
- */
- @property (nonatomic, readonly) NSArray *allSnsValuesArray;
- /**
- 该NSDictionary以各个平台名为key,UMSocialPlatform对象为value
- */
- @property (nonatomic, retain) NSDictionary *allSnsPlatformDictionary;
- /**
- `UMSocialSnsPlatformManager`的单例方法
-
- @return `UMSocialSnsPlatformManager`的单例对象
- */
- + (UMSocialSnsPlatformManager *)sharedInstance;
- /**
- 根据平台名,返回平台对象
-
- @param platformName sns平台名
-
- @return UMSocialSnsPlatform 平台对象
- */
- +(UMSocialSnsPlatform *)getSocialPlatformWithName:(NSString *)snsName;
- /**
- 根据平台枚举变量,返回平台对象
-
- @param UMSocialSnsType sns平台枚举变量
-
- @return NSString 平台名
- */
- + (NSString *)getSnsPlatformString:(UMSocialSnsType)socialSnsType;
- /**
- 把配置平台的次序号转换成平台名
-
- @param snsIndex 使用的平台顺序,使用的平台配置在UMSocialConfigDelegate,例如`- (NSArray *)shareToPlatforms;`返回的是UMSocialSnsTypeSina和UMSocialSnsTypeTenc,UMSocialSnsTypeSina就是0,UMSocialSnsTypeTenc就是1
-
- @return 平台名字符串
- */
- +(NSString *)getSnsPlatformStringFromIndex:(NSInteger)snsIndex;
- @end
|