Skip to content

Commit 2fbd7f8

Browse files
author
Jasper
committed
分享优化
1 parent 7d5f1ba commit 2fbd7f8

File tree

21 files changed

+1329
-298
lines changed

21 files changed

+1329
-298
lines changed

CYUtilProject/.DS_Store

0 Bytes
Binary file not shown.

CYUtilProject/CYShareSDK/CYShare.h

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,38 +34,72 @@
3434
@interface CYShare : NSObject
3535

3636
#if CY_SHARE_WECHAT_ENABLED
37+
/**
38+
* 微信注册,appId和appKey为微信开放平台注册之后,微信分配给第三方的appId和appKey
39+
*/
3740
+ (void)registerWechatAppId:(NSString *)appId;
41+
+ (void)registerWechatAppKey:(NSString *)appKey;
3842

43+
/**
44+
* 微信分享,由开发者指定分享给好友或者分享到朋友圈
45+
*/
3946
+ (void)shareToWechat:(CYShareModel *)model
4047
scene:(CYWechatScene)scene
4148
callback:(CYShareCallback)callback;
4249

50+
/**
51+
* 微信分享,弹出ActionSheet,由用户选择分享给好友或者分享到朋友圈
52+
*/
4353
+ (void)shareToWechat:(CYShareModel *)model
4454
presentActionSheetFrom:(UIViewController *)viewController
4555
callback:(CYShareCallback)callback;
4656
#endif
4757

4858
#if CY_SHARE_QQ_ENABLED
59+
/**
60+
* qq注册,appId和appKey为qq互联平台注册之后,qq分配给第三方的appId和appKey
61+
*/
4962
+ (void)registerQQAppId:(NSString *)appId;
63+
+ (void)registerQQAppKey:(NSString *)appKey;
5064

65+
/**
66+
* qq分享,由开发者指定分享给好友或者分享到qq空间
67+
*/
5168
+ (void)shareToQQ:(CYShareModel *)model
5269
ctrlFlag:(CYQQAPICtrlFlag)flag
5370
callback:(CYShareCallback)callback;
5471

72+
/**
73+
* qq分享,弹出ActionSheet,由用户选择分享给好友或者分享到qq空间
74+
*/
5575
+ (void)shareToQQ:(CYShareModel *)model
5676
presentActionSheetFrom:(UIViewController *)viewController
5777
callback:(CYShareCallback)callback;
5878
#endif
5979

6080
#if CY_SHARE_SINA_WEIBO_ENABLED
81+
/**
82+
* 新浪微博注册,appKey为微博开放平台注册之后,微博分配给第三方的AppKey
83+
*/
6184
+ (void)registerWeiboAppKey:(NSString *)appKey;
6285

86+
/**
87+
* 分享到微博
88+
* 分享网页时,建议以文本的形式分享,把网页链接拼接到文本中
89+
*/
6390
+ (void)shareToWeibo:(CYShareModel *)model
6491
callback:(CYShareCallback)callback;
6592
#endif
6693

6794
#if CY_SHARE_APPLE_ACTIVITY_ENABLED
6895

96+
/**
97+
通过iOS系统提供的UIActivityViewController来分享
98+
99+
可以分享文字、链接和图片
100+
包含文字时,请设置model.content属性
101+
102+
*/
69103
+ (void)shareByAppleActivity:(CYShareModel *)model
70104
presentFrom:(UIViewController *)viewController
71105
callback:(CYShareCallback)callback;

CYUtilProject/CYShareSDK/CYShare.m

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@ @implementation CYShare
1616

1717
#if CY_SHARE_WECHAT_ENABLED
1818
+ (void)registerWechatAppId:(NSString *)appId {
19-
[[CYWechat sharedInstance] registerWithAppId:appId];
19+
[[CYWechat sharedInstance] registerAppId:appId];
20+
}
21+
22+
+ (void)registerWechatAppKey:(NSString *)appKey {
23+
[[CYWechat sharedInstance] registerAppKey:appKey];
2024
}
2125

2226
+ (void)shareToWechat:(CYShareModel *)model
@@ -40,7 +44,11 @@ + (void)shareToWechat:(CYShareModel *)model
4044

4145
#if CY_SHARE_QQ_ENABLED
4246
+ (void)registerQQAppId:(NSString *)appId {
43-
[[CYQQ sharedInstance] registerWithAppId:appId];
47+
[[CYQQ sharedInstance] registerAppId:appId];
48+
}
49+
50+
+ (void)registerQQAppKey:(NSString *)appKey {
51+
[[CYQQ sharedInstance] registerAppKey:appKey];
4452
}
4553

4654
+ (void)shareToQQ:(CYShareModel *)model
@@ -63,7 +71,7 @@ + (void)shareToQQ:(CYShareModel *)model
6371

6472
#if CY_SHARE_SINA_WEIBO_ENABLED
6573
+ (void)registerWeiboAppKey:(NSString *)appKey {
66-
[[CYSinaWeibo sharedInstance] registerWithAppId:appKey];
74+
[[CYSinaWeibo sharedInstance] registerAppKey:appKey];
6775
}
6876

6977
+ (void)shareToWeibo:(CYShareModel *)model

CYUtilProject/CYShareSDK/CustomShare/CYAppleActivity.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,28 @@
1414

1515
@class UIViewController;
1616

17+
/**
18+
* 通过iOS系统提供的UIActivityViewController来分享
19+
*
20+
*/
1721
@interface CYAppleActivity : CYBaseShare
1822

23+
/**
24+
* 通过iOS系统提供的UIActivityViewController来分享
25+
*
26+
* 通过调用- (void)share:presentFrom:callback:来实现
27+
* 其中presentFrom使用[[[UIApplication sharedApplication] keyWindow] rootViewController]
28+
*
29+
*/
30+
- (void)share:(CYShareModel *)model
31+
callback:(CYShareCallback)callback;
32+
33+
/**
34+
* 通过iOS系统提供的UIActivityViewController来分享
35+
*
36+
* 弹出ActionSheet选择分享到哪个网站
37+
*
38+
*/
1939
- (void)share:(CYShareModel *)model
2040
presentFrom:(UIViewController *)viewController
2141
callback:(CYShareCallback)callback;

CYUtilProject/CYShareSDK/CustomShare/CYBaseShare.h

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010

1111
@class CYShareModel;
1212

13-
typedef void (^CYThirdPartyLoginCallback)(NSInteger code, NSString *msg, NSDictionary *resultDic);
13+
typedef void (^CYLoginCallback)(NSInteger code, NSString *msg, NSDictionary *resultDic);
1414
typedef void (^CYShareCallback)(NSInteger code, NSString *msg);
1515

1616
@interface CYBaseShare : NSObject
1717

1818
@property (nonatomic, strong, readonly) NSString *appId;
19-
//@property (nonatomic, strong, readonly) NSString *appKey;
19+
@property (nonatomic, strong, readonly) NSString *appKey;
2020

2121
@property (nonatomic, copy) CYShareCallback shareCallback;
2222

@@ -27,7 +27,9 @@ typedef void (^CYShareCallback)(NSInteger code, NSString *msg);
2727

2828
#pragma mark - app info
2929
// 注册appid和appKey
30-
- (void)registerWithAppId:(NSString *)appId;
30+
// 微信和QQ必须注册Appid,微博必须注册AppKey
31+
- (void)registerAppId:(NSString *)appId;
32+
- (void)registerAppKey:(NSString *)appKey;
3133

3234
#pragma mark - api
3335
/**

CYUtilProject/CYShareSDK/CustomShare/CYBaseShare.m

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,14 @@
1111
@implementation CYBaseShare
1212

1313
#pragma mark - app info
14-
- (void)registerWithAppId:(NSString *)appId {
14+
- (void)registerAppId:(NSString *)appId {
1515
_appId = appId;
1616
}
1717

18+
- (void)registerAppKey:(NSString *)appKey {
19+
_appKey = appKey;
20+
}
21+
1822
#pragma mark - share
1923
- (void)share:(CYShareModel *)model
2024
callback:(CYShareCallback)callback {

CYUtilProject/CYShareSDK/CustomShare/CYQQ.h

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
#import "CYBaseShare.h"
1313

1414
@class CYShareModel;
15+
@class CYQQLoginInfo;
16+
@class CYQQUserInfo;
1517
@class UIViewController;
1618

1719
typedef NS_ENUM(uint64_t, CYQQAPICtrlFlag) {
@@ -78,4 +80,96 @@ presentActionSheetFrom:(UIViewController *)viewController
7880
+ (instancetype)sharedInstance;
7981

8082
@end
83+
84+
#pragma mark - qq login
85+
86+
typedef void (^CYQQLoginCallback)(NSInteger errorCode, NSString *msg, CYQQLoginInfo *loginInfo);
87+
typedef void (^CYQQUserInfoCallback)(NSInteger errorCode, NSString *msg, CYQQUserInfo *userInfo);
88+
89+
@interface CYQQ (Login)
90+
91+
// 缓存登录信息,未登录情况下为空
92+
@property (nonatomic, strong, readonly) CYQQLoginInfo *loginInfo;
93+
// 缓存用户信息,第一次成功获取到用户信息之前为空,之后则为最新一次获取到的用户信息
94+
@property (nonatomic, strong, readonly) CYQQUserInfo *userInfo;
95+
96+
/**
97+
* qq登录
98+
* @param permissions 需要的权限列表,参考QQ SDK中的sdkdef.h
99+
* @param callback 登录完成回调
100+
*/
101+
- (void)loginWithPermissions:(NSArray *)permissions
102+
callback:(CYQQLoginCallback)callback;
103+
104+
/**
105+
* qq登录,采用kOPEN_PERMISSION_GET_SIMPLE_USER_INFO权限进行登录
106+
* @param callback 登录完成回调
107+
*/
108+
- (void)loginWithCallback:(CYQQLoginCallback)callback;
109+
110+
@end
111+
112+
113+
114+
#pragma mark - logininfo model
115+
/**
116+
* qq登录信息model
117+
*
118+
* qq登录成功之后,回调中包含此model,用来标识用户登录相关信息
119+
*
120+
*/
121+
@interface CYQQLoginInfo: NSObject
122+
123+
/** Access Token凭证,用于后续访问各开放接口 */
124+
@property(nonatomic, copy) NSString* accessToken;
125+
126+
/** Access Token的失效期 */
127+
@property(nonatomic, copy) NSDate* expirationDate;
128+
129+
/** 用户授权登录后对该用户的唯一标识 */
130+
@property(nonatomic, copy) NSString* openId;
131+
132+
+ (instancetype)instanceFromCurrentQQOAuth;
133+
134+
@end
135+
136+
137+
138+
#pragma mark - userinfo model
139+
/**
140+
* qq用户信息model
141+
*
142+
* 调用获取用户信息接口时,如果调用成功,则回调block中的参数包含此对象
143+
*
144+
*/
145+
@interface CYQQUserInfo: NSObject
146+
147+
// 用户在QQ空间的昵称。
148+
@property (nonatomic, copy) NSString *nickname;
149+
// 大小为30×30像素的QQ空间头像URL。
150+
@property (nonatomic, copy) NSString *figureurl;
151+
// 大小为50×50像素的QQ空间头像URL。
152+
@property (nonatomic, copy) NSString *figureurl_1;
153+
// 大小为100×100像素的QQ空间头像URL。
154+
@property (nonatomic, copy) NSString *figureurl_2;
155+
// 大小为40×40像素的QQ头像URL。
156+
@property (nonatomic, copy) NSString *figureurl_qq_1;
157+
// 大小为100×100像素的QQ头像URL。需要注意,不是所有的用户都拥有QQ的100x100的头像,但40x40像素则是一定会有。
158+
@property (nonatomic, copy) NSString *figureurl_qq_2;
159+
// 性别。 如果获取不到则默认返回"男"
160+
@property (nonatomic, copy) NSString *gender;
161+
// 标识用户是否为黄钻用户(0:不是;1:是)。
162+
@property (nonatomic, copy) NSString *isYellowVip;
163+
// 标识用户是否为黄钻用户(0:不是;1:是)
164+
@property (nonatomic, copy) NSString *vip;
165+
// 黄钻等级
166+
@property (nonatomic, copy) NSString *yellowVipLevel;
167+
// 黄钻等级
168+
@property (nonatomic, copy) NSString *level;
169+
// 标识是否为年费黄钻用户(0:不是; 1:是)
170+
@property (nonatomic, copy) NSString *isYellowYearVip;
171+
172+
173+
@end
174+
81175
#endif

0 commit comments

Comments
 (0)