iOS --- 使用UIActivityViewController实现分享功能
2015-11-09 20:37
465 查看
UIActivityViewController是iOS自带的分享功能的控制器,包含AirDrop,Copy,Message,Email等功能。开发者可以通过该视图控制器自定义分享功能。当然,部分分享功能直接采用友盟或shareSDK也可以。
以上都是一些需要重写的方法,作用基本看方法名就知道了。
建立好CustomActivity之后,使用非常简便,如下:
初始化一个CustomActivity的实例对象,然后通过UIActivityViewController将其present处理即可。
UIActivity
一个UIActivity代表一个分享的功能。创建自定义Activity如下:@interface CustomActivity : UIActivity @property (nonatomic) UIImage *shareImage; @property (nonatomic, copy) NSString *URL; @property (nonatomic, copy) NSString *title; @property (nonatomic, copy) NSArray *shareContentArray; -(instancetype)initWithImage:(UIImage *)shareImage atURL:(NSString *)URL atTitle:(NSString *)title atShareContentArray:(NSArray *)shareContentArray; @end @implementation CustomActivity - (instancetype)initWithImage:(UIImage *)shareImage atURL:(NSString *)URL atTitle:(NSString *)title atShareContentArray:(NSArray *)shareContentArray { if (self = [super init]) { _shareImage = shareImage; _URL = URL; _title = title; _shareContentArray = shareContentArray; } return self; } + (UIActivityCategory)activityCategory { return UIActivityCategoryShare; } - (NSString *)activityType { return _title; } - (NSString *)activityTitle { return _title; } - (UIImage *)activityImage { return _shareImage; } - (BOOL)canPerformWithActivityItems:(NSArray *)activityItems { return YES; } - (UIViewController *)activityViewController { return nil; } - (void)performActivity { if (nil == _title) { return; } NSLog(@"%@", _shareContentArray); NSLog(@"%@", _title); [self activityDidFinish:YES];//默认调用传递NO } - (void)activityDidFinish:(BOOL)completed { if (completed) { NSLog(@"%s", __func__); } } @end
以上都是一些需要重写的方法,作用基本看方法名就知道了。
UIActivityViewController
UIActivityViewController用于呈现这些分享功能,主要调用initWithActivityItems:applicationActivities:方法将各个分享功能加进来即可。建立好CustomActivity之后,使用非常简便,如下:
- (void)actionActivityViewController:(UIButton *)sender { NSString *title = @"My Title"; NSString *content = @"My Content"; UIImage *image = [UIImage imageNamed:@"CustomActivity"]; NSURL *url = [NSURL URLWithString:@"https://www.baidu.com"]; NSArray *activityItems = @[title, content, image, url]; CustomActivity *customActivity = [[CustomActivity alloc] initWithImage:image atURL:url atTitle:title atShareContentArray:activityItems]; NSArray *apps = @[customActivity]; UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:apps]; activityVC.excludedActivityTypes = @[UIActivityTypeMessage, UIActivityTypeCopyToPasteboard]; [self presentViewController:activityVC animated:YES completion:nil]; }
初始化一个CustomActivity的实例对象,然后通过UIActivityViewController将其present处理即可。
相关文章推荐
- 【CF 应用开发大赛】IT Share(IT分享网)
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 新版本susymenu树形菜单,请大家指教、分享
- javascript实现类似百度分享功能的方法
- 网页上facebook分享功能具体实现
- 讲解iOS开发中基本的定位功能实现
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- js实现选中页面文字将其分享到新浪微博
- Android编程之微信SDK分享功能过程步骤详细分析
- 探讨Android与iOS,我们将何去何从?
- Android编程实现微信分享信息的方法