github demo 下载地址,有问题请评论或者在git上提交问题-> (别忘了给老弟个star)
1.TSShareHelper 功能
iOS的原生分享功能是项目中的常用需求,但是之前一直是使用分享面板分享,这次找到了不走选择面板直接跳转到相关App
的方法,这些方法封装成一个分享Helper.有待完善,放在GitHub上大家一起学习研究
2. 需求原因
- 首先,在项目中我们遇到了一些这样的需求:点击分享按钮,直接进入微信.qq登的分享页面,要在app内打开一个列表.
- 并且要求多图分享
这样做的好处就是不用集成太多的SDK和什么AppKey.只要调用系统的分享就可以了.
有分享面板的分享但是问题来了,调用系统的分享是要跳出分享面板的
这显然不符合我们的需求
使用面板是这样分享的
UIActivityViewController * activityCtl = [[UIActivityViewController alloc]initWithActivityItems:items applicationActivities:nil];
[controller presentViewController:activityCtl animated:YES completion:nil];
3. 怎么跳过分享面板
-
这个时候,我们通过遍历属性发现了一个私有类
SLComposeViewController
通过这个类,结合跳转对应的
ServiceType
可以跳过分享面板,直接分享
SLComposeViewController *composeVC = [SLComposeViewController composeViewControllerForServiceType:serviceType];
[composeVC addImage:(UIImage *)obj];
[controller presentViewController:composeVC animated:YES completion:nil];
有分享面板的分享
但是还是有问题,就是没有安装app会崩溃掉.
所以加了个@try,如果崩了就捕捉到,表示没有安装
4. 主要解决了两个问题
- 使用原生进行分享,可以不选择类型
- 分享多图的问题
- 这里使用了两个类
UIActivityViewController.h 来弹出分享面板
SLComposeViewController.h 来跳过分享面板直接分享
github demo 下载地址,有问题请评论或者在git上提交问题->
注意:
具体实现请读readme
注意:
分享的内容如果是其他内容,可以使用url来初始化
网友评论