最近开发用到了系统级的分享,当然,一般来说有很好的第三方,我们是不会直接来用系统级的分享的,那系统级别的分享怎么用呢?博主看了网上的一些东西,无非都是UIActivityViewController或是简单的封装一下,这里简单说一下UIActivityViewController的优点和缺点:
优点:代码简易,使用简单,可复制,可分享,使用一些系统级别的功能,它长这样。
缺点:例如邮件,短信的分享功能是必有的,属于系统级别的功能,但是如果要加入QQ,微信等等一些第三方平台就没那么容易了,需要使用第三方平台的API来自己集成到里面,虽然我们所见到的第三方也是在平台上下载集成文件进行封装的,不过那不需要我们自己去集成。还有一些应用如果在手机上绑定了,比如facebook,新浪微博等等,是会显示出来的,但是这个绑定就比较难琢磨了,可能跟应用本身的某些设置有关:
图中圈起来的是博主手机上可以绑定的应用,不明白为什么会是这几个。不过满足一般需求来说还是够的。
下面上代码:
//信息 NSString *messageShare = shareMessage; //分享链接(图片也可以的,有需要的自己加,格式都是一样的) NSString *urlSHare = [NSURL URLWithString:shareURL]; NSArray *activityItems = @[messageShare,urlSHare]; UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:nil]; //弹出分享的VC [self presentViewController:activityVC animated:YES completion:nil]; //回调,截取成功和取消的信号 UIActivityViewControllerCompletionHandler myBlock = ^(NSString *activityType,BOOL completed) { NSLog(@"activityType :%@", activityType); if (completed) { NSLog(@"completed"); } else { NSLog(@"cancel"); } //操作成功或者取消后都会回上一级界面 [self.navigationController dismissModalViewControllerAnimated:YES]; }; // 初始化completionHandler,当操作结束之后无论成功还是取消该block都会被调用 activityVC.completionHandler = myBlock;