Skip to content

Commit 7d5f1ba

Browse files
author
Jasper
committed
增加短信分享
新浪微博分享bug修复 Appleactivity分享bug修复
1 parent 56faa8c commit 7d5f1ba

File tree

15 files changed

+300
-42
lines changed

15 files changed

+300
-42
lines changed

CYUtilProject/CYShareSDK/CYShare.h

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
#import "CYAppleActivity.h"
2626
#endif
2727

28+
#if CY_SHARE_SMS_ENABLED
29+
#import "CYSMS.h"
30+
#endif
31+
2832
#import "CYShareModel.h"
2933

3034
@interface CYShare : NSObject
@@ -63,11 +67,26 @@ presentActionSheetFrom:(UIViewController *)viewController
6367
#if CY_SHARE_APPLE_ACTIVITY_ENABLED
6468

6569
+ (void)shareByAppleActivity:(CYShareModel *)model
66-
presentShareFrom:(UIViewController *)viewController
70+
presentFrom:(UIViewController *)viewController
6771
callback:(CYShareCallback)callback;
6872

6973
#endif
7074

75+
#if CY_SHARE_SMS_ENABLED
76+
77+
/**
78+
短信分享,可以发送文本和链接,链接会拼接在文本最后面发送
79+
80+
目前暂不支持图片分享
81+
82+
*/
83+
+ (void)shareBySMS:(CYShareModel *)model
84+
to:(NSArray *)mobiles
85+
presentFrom:(UIViewController *)viewController
86+
callback:(CYShareCallback)callback;
87+
88+
#endif
89+
7190
/**
7291
* 需要在AppDelegate的- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 方法中调用此方法,来处理结果
7392
*/

CYUtilProject/CYShareSDK/CYShare.m

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,15 +76,29 @@ + (void)shareToWeibo:(CYShareModel *)model
7676
#if CY_SHARE_APPLE_ACTIVITY_ENABLED
7777

7878
+ (void)shareByAppleActivity:(CYShareModel *)model
79-
presentShareFrom:(UIViewController *)viewController
79+
presentFrom:(UIViewController *)viewController
8080
callback:(CYShareCallback)callback {
8181
[[CYAppleActivity sharedInstance] share:model
82-
presentShareFrom:viewController
82+
presentFrom:viewController
8383
callback:callback];
8484
}
8585

8686
#endif
8787

88+
#if CY_SHARE_SMS_ENABLED
89+
90+
+ (void)shareBySMS:(CYShareModel *)model
91+
to:(NSArray *)mobiles
92+
presentFrom:(UIViewController *)viewController
93+
callback:(CYShareCallback)callback {
94+
[[CYSMS sharedInstance] share:model
95+
toUsers:mobiles
96+
presentFrom:viewController
97+
callback:callback];
98+
}
99+
100+
#endif
101+
88102
+ (BOOL)handleOpenURL:(NSURL *)URL {
89103
BOOL result = NO;
90104
#if CY_SHARE_WECHAT_ENABLED

CYUtilProject/CYShareSDK/CYShareCtrlFlag.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,10 @@
1616
#define CY_SHARE_QQ_ENABLED 1
1717
// 是否需要微博分享,如果不需要,则将此置为0,并且也无需集成微博SDK
1818
#define CY_SHARE_SINA_WEIBO_ENABLED 1
19-
// 是否需要Apple官方提供的分享(UIActivityViewController),如果不需要,则将此置为0,并且也无需集成微博SDK
19+
// 是否需要Apple官方提供的分享(UIActivityViewController),默认关闭,如果需要打开,则将此置为1
2020
#define CY_SHARE_APPLE_ACTIVITY_ENABLED 1
21+
// 是否需要信息分享(短信,imessage),如果不需要,则将此置为0,
22+
#define CY_SHARE_SMS_ENABLED 1
2123

2224

2325
#endif /* CYShareCtrlFlag_h */

CYUtilProject/CYShareSDK/CYShareModel.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,15 @@
1111
/**
1212
* 分享内容的类型,目前支持文本、链接和图片分享
1313
*/
14-
typedef NS_ENUM(NSInteger, XNShareContenType) {
15-
XNShareContenTypeText,
16-
XNShareContenTypeURL,
17-
XNShareContenTypeImage
14+
typedef NS_ENUM(NSInteger, CYShareContenType) {
15+
CYShareContenTypeText,
16+
CYShareContenTypeURL,
17+
CYShareContenTypeImage
1818
};
1919

2020
@interface CYShareModel : NSObject
2121

22-
@property (nonatomic, assign, readonly) XNShareContenType type;
22+
@property (nonatomic, assign, readonly) CYShareContenType type;
2323

2424
// share title
2525
@property (nonatomic, strong) NSString *title;
@@ -30,12 +30,12 @@ typedef NS_ENUM(NSInteger, XNShareContenType) {
3030
@property (nonatomic, strong) NSData *thumbnail;
3131

3232
// shared url, or image url
33-
// 当type == XNShareContenTypeURL时,此属性不能为空
34-
// 当type == XNShareContenTypeImage时,此属性和data属性不能同时为空,两个都有值时,使用data中的数据
33+
// 当type == CYShareContenTypeURL时,此属性不能为空
34+
// 当type == CYShareContenTypeImage时,此属性和data属性不能同时为空,两个都有值时,使用data中的数据
3535
@property (nonatomic, strong) NSString *url;
3636

3737
// Image data
38-
// 当type == XNShareContenTypeImage时,此属性和url属性不能同时为空,两个都有值时,使用data中的数据
38+
// 当type == CYShareContenTypeImage时,此属性和url属性不能同时为空,两个都有值时,使用data中的数据
3939
@property (nonatomic, strong) NSData *data;
4040

4141
// custom user info
@@ -52,7 +52,7 @@ typedef NS_ENUM(NSInteger, XNShareContenType) {
5252
thumbnail:(NSData *)thumbnail
5353
url:(NSString *)url
5454
data:(NSData *)data
55-
type:(XNShareContenType)type;
55+
type:(CYShareContenType)type;
5656

5757
/**
5858
* 创建文本分享Model

CYUtilProject/CYShareSDK/CYShareModel.m

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ - (instancetype)initWithTitle:(NSString *)title
1515
thumbnail:(NSData *)thumbnail
1616
url:(NSString *)url
1717
data:(NSData *)data
18-
type:(XNShareContenType)type {
18+
type:(CYShareContenType)type {
1919
if (self = [super init]) {
2020

2121
_title = title;
@@ -30,15 +30,15 @@ - (instancetype)initWithTitle:(NSString *)title
3030

3131
- (BOOL)isValid {
3232
switch (_type) {
33-
case XNShareContenTypeText:
33+
case CYShareContenTypeText:
3434
return self.content != nil;
3535
break;
3636

37-
case XNShareContenTypeURL:
37+
case CYShareContenTypeURL:
3838
return self.url != nil;
3939
break;
4040

41-
case XNShareContenTypeImage:
41+
case CYShareContenTypeImage:
4242
return (self.url != nil || self.data != nil);
4343
break;
4444
}
@@ -49,7 +49,7 @@ + (instancetype)textModelWithContent:(NSString *)content {
4949
thumbnail:nil
5050
url:nil
5151
data:nil
52-
type:XNShareContenTypeText];
52+
type:CYShareContenTypeText];
5353
}
5454

5555
+ (instancetype)urlModelWithTitle:(NSString *)title
@@ -62,7 +62,7 @@ + (instancetype)urlModelWithTitle:(NSString *)title
6262
thumbnail:thumbnail
6363
url:url
6464
data:nil
65-
type:XNShareContenTypeURL];
65+
type:CYShareContenTypeURL];
6666
}
6767

6868
+ (instancetype)imageModelWithTitle:(NSString *)title
@@ -75,7 +75,7 @@ + (instancetype)imageModelWithTitle:(NSString *)title
7575
thumbnail:thumbnail
7676
url:url
7777
data:nil
78-
type:XNShareContenTypeImage];
78+
type:CYShareContenTypeImage];
7979
}
8080

8181
+ (instancetype)imageModelWithTitle:(NSString *)title
@@ -88,7 +88,7 @@ + (instancetype)imageModelWithTitle:(NSString *)title
8888
thumbnail:thumbnail
8989
url:nil
9090
data:data
91-
type:XNShareContenTypeImage];
91+
type:CYShareContenTypeImage];
9292

9393
}
9494

CYUtilProject/CYShareSDK/CustomShare/CYAppleActivity.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
@interface CYAppleActivity : CYBaseShare
1818

1919
- (void)share:(CYShareModel *)model
20-
presentShareFrom:(UIViewController *)viewController
20+
presentFrom:(UIViewController *)viewController
2121
callback:(CYShareCallback)callback;
2222

2323
#pragma mark - sharedInstance

CYUtilProject/CYShareSDK/CustomShare/CYAppleActivity.m

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ @implementation CYAppleActivity
1717

1818
- (void)share:(CYShareModel *)model callback:(CYShareCallback)callback {
1919
[self share:model
20-
presentShareFrom:[[[UIApplication sharedApplication] keyWindow] rootViewController]
20+
presentFrom:[[[UIApplication sharedApplication] keyWindow] rootViewController]
2121
callback:callback];
2222
}
2323

2424
- (void)share:(CYShareModel *)model
25-
presentShareFrom:(UIViewController *)viewController
25+
presentFrom:(UIViewController *)viewController
2626
callback:(CYShareCallback)callback {
2727

2828
if (!model.isValid) {
@@ -37,19 +37,19 @@ - (void)share:(CYShareModel *)model
3737
[activityItems addObject:model.content];
3838
}
3939
switch (model.type) {
40-
case XNShareContenTypeText: {
40+
case CYShareContenTypeText: {
4141
break;
4242
}
4343

44-
case XNShareContenTypeURL: {
44+
case CYShareContenTypeURL: {
4545
NSURL *url = [NSURL URLWithString:model.url];
4646
if (url) {
4747
[activityItems addObject:url];
4848
}
4949
break;
5050
}
5151

52-
case XNShareContenTypeImage: {
52+
case CYShareContenTypeImage: {
5353
UIImage *image = [UIImage imageWithData:model.data];
5454
if (image) {
5555
[activityItems addObject:image];

CYUtilProject/CYShareSDK/CustomShare/CYQQ.m

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,23 +133,25 @@ - (void)share:(CYShareModel *)model
133133

134134
QQApiObject *object = nil;
135135
switch (model.type) {
136-
case XNShareContenTypeText: {
136+
case CYShareContenTypeText: {
137137
object = [QQApiTextObject objectWithText:model.content];
138138
break;
139139
}
140140

141-
case XNShareContenTypeURL: {
141+
case CYShareContenTypeURL: {
142142
object = [QQApiNewsObject objectWithURL:[NSURL URLWithString:model.url]
143143
title:model.title
144144
description:model.content
145145
previewImageData:model.thumbnail];
146+
break;
146147
}
147148

148-
case XNShareContenTypeImage: {
149+
case CYShareContenTypeImage: {
149150
object = [QQApiImageObject objectWithData:model.data
150151
previewImageData:model.thumbnail
151152
title:model.title
152153
description:model.content];
154+
break;
153155
}
154156

155157
default:
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
//
2+
// CYSMS.h
3+
// CYUtilProject
4+
//
5+
// Created by xn011644 on 18/10/2017.
6+
// Copyright © 2017 Charry. All rights reserved.
7+
//
8+
9+
#import "CYShareCtrlFlag.h"
10+
11+
#if CY_SHARE_SMS_ENABLED
12+
13+
#import "CYBaseShare.h"
14+
15+
@class UIViewController;
16+
17+
@interface CYSMS : CYBaseShare
18+
19+
extern NSString *const CYSMSToUsersKey;
20+
21+
/**
22+
发送信息分享,使用此方法时,可以在model.userInfo中包含Key为CYSMSToUsersKey的值,用于发送对象的手机号列表
23+
CYSMSToUsersKey对应的值的类型可以是字符串或者字符串数组
24+
*/
25+
- (void)share:(CYShareModel *)model
26+
callback:(CYShareCallback)callback;
27+
28+
- (void)share:(CYShareModel *)model
29+
to:(NSString *)mobile
30+
presentFrom:(UIViewController *)viewController
31+
callback:(CYShareCallback)callback;
32+
33+
- (void)share:(CYShareModel *)model
34+
toUsers:(NSArray *)mobiles
35+
presentFrom:(UIViewController *)viewController
36+
callback:(CYShareCallback)callback;
37+
38+
#pragma mark - sharedInstance
39+
+ (instancetype)sharedInstance;
40+
41+
@end
42+
43+
#endif

0 commit comments

Comments
 (0)