您的位置:首页 > 移动开发 > IOS开发

iOS开发-系统级分享

2016-03-29 09:42 363 查看
最近开发用到了系统级的分享,当然,一般来说有很好的第三方,我们是不会直接来用系统级的分享的,那系统级别的分享怎么用呢?博主看了网上的一些东西,无非都是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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: