TSShareHelper 提醒一下各位,由于 iOS11 不支持,所以跳过选择页面不行了(目前判断了版本先用原生分享界面,让用户手动选微信吧)
功能:实现 iOS 系统分享功能不经过选择,直接进入或进行选择。新增视频、文件的分享。已判定版本,做了回调处理。
- 微信(iOS11之前支持直接弹出页面前三个)
- 新浪
- 原生选择界面(iOS11自动选择该 type,请注意代码)
注意
:其中传入的 items 包含 UIImage 或者 NSURL 的数组
/**
分享方法
@param type 分享类型
@param controller 展示的控制器
@param items 所有的分享对象 可以包括的类型是<UIimage NSURL>两种类型
@param completion 分享的回调 YES:成功 NO:失败
@return 返回分享结果 如果是No表示没有安装,请自行处理.
*/
+ (BOOL)shareWithType:(TSShareHelperShareType)type
andController:(UIViewController *)controller
andItems:(NSArray *)items
andCompletion:(TSShareHelperCompleteHandler)completion;
效果图
具体实现
-
调用系统的分享选择界面其实就是 UIActivityViewController
其中第一个参数传入分享的对象(图片、url、string 等等)第二个参数可以传入自定义 UIActivity,即选择界面的视图模型
UIActivityViewController * activityCtl = [[UIActivityViewController alloc]initWithActivityItems:items applicationActivities:nil];
[controller presentViewController:activityCtl animated:YES completion:nil];
- 跳过选择直接进入系统的分享主要是下面的代码,如果有其他类型分享,可以使用官方提供类型,也可以根据最下面的注释中的类型进行选择
SLComposeViewController *composeVC = [SLComposeViewController composeViewControllerForServiceType:serviceType];
[composeVC addImage:(UIImage *)obj];
[controller presentViewController:composeVC animated:YES completion:nil];