利用UIActivityViewController实现系统原生分享,不需要三方SDK,支持自定义分享,可以分享到微博、微信、QQ、信息、邮件、备忘录、通讯录、剪贴板、FaceBook.....等等 效果2.gif 接下来介绍UIActivityViewController:Demo里也注释的很清楚 1. 创建要分享的数据内容,加在一个数组 ActivityItems里。 //创建分享视图控制器,初始化UIActivityViewController ActivityItems 在执行activity中用到的数据对象数组。 */ UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems completion:nil]; } } 接下来介绍自定义UIActivity,主要就是重写了以下方法: + (UIActivityCategory)activityCategory{ // 决定在UIActivityViewController
iOS开发中活动视图控制器UIActivityViewController的应用 在iOS开发中,UIActivityViewController常用来弹出分享面板,其实除了用来社会化分享,UIActivityViewController URLWithString:@"https://www.baidu.com"]; //活动的图片 UIImage * image = [UIImage imageNamed:@"ios"]; UIActivityViewController * con = [[UIActivityViewController alloc]initWithActivityItems:@[content,url,image] applicationActivities UIActivityViewController继承自UIViewController,类解析如下: //初始化方法 - (instancetype)init; - (instancetype)initWithNibName * con = [[UIActivityViewController alloc]initWithActivityItems:@[content,url,image] applicationActivities
示例: 接下来就以我之前写的UIActivityViewController系统原生分享-仿简书分享和iOS开源小项目-WSL两个Demo为例,让我们看下怎么可以让UIActivityViewController 相当于WSL回调唤起UIActivityViewController系统原生分享,过程同一、二步。 给UIActivityViewController系统原生分享 也添加Url Scheme,便于从WSL返回主应用UIActivityViewController系统原生分享。 给UIActivityViewController系统原生分享也添加Url Scheme 重写UIActivityViewController系统原生分享中AppDelegate中的openUrl方法, 在返回UIActivityViewController系统原生分享应用时根据从WSL返回的数据处理结果做出反应。
示例: 接下来就以我之前写的UIActivityViewController系统原生分享-仿简书分享和iOS开源小项目-WSL两个Demo为例,让我们看下怎么可以让UIActivityViewController 相当于WSL回调唤起UIActivityViewController系统原生分享,过程同一、二步。 给UIActivityViewController系统原生分享 也添加Url Scheme,便于从WSL返回主应用UIActivityViewController系统原生分享。 [给UIActivityViewController系统原生分享也添加Url Scheme] 重写UIActivityViewController系统原生分享中AppDelegate中的openUrl方法 ,在返回UIActivityViewController系统原生分享应用时根据从WSL返回的数据处理结果做出反应。
image; NSURL *urlToShare = url; NSArray *activityItems = @[urlToShare,textToShare,imageToShare]; UIActivityViewController * actVc = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities
} } //获取路径文件url NSURL*fileUrl = [NSURL fileURLWithPath:fileName]; // 初始化UIActivityViewController NSArray *activityItems = @[fileUrl]; UIActivityViewController *activityVC = [[UIActivityViewController
shortcutItem.type isEqualToString:@"-11.UITouchText.share"]){ NSArray *arr = @[@"hello 3D Touch"]; UIActivityViewController *vc = [[UIActivityViewController alloc]initWithActivityItems:arr applicationActivities:nil]; UITouchText.share": let items = ["hello 3D Touch"] let activityVC = UIActivityViewController
UIImage *image =[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url]]]; UIActivityViewController *a = [[UIActivityViewController alloc] initWithActivityItems:[NSArray arrayWithObjects:titleText,shareText UIImage *image =[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:url]]]; UIActivityViewController *a = [[UIActivityViewController alloc] initWithActivityItems:[NSArray arrayWithObjects:titleText,shareText
锁屏歌词.PNG 详情可以参考我之前的文章: iOS 音乐播放器之锁屏效果+歌词解析 仿简书分享-UIActivityViewController系统原生分享 iOS技术网站和常用软件 iOS
API NOTE 查看UIActivityViewController Class Reference学习更多关于在你的代码中定义活动视图控制器的内容;查看Activity学习如何设计一个提供了自定义任务的活动
Hill 的建议如下: ShareLink/UIActivityViewController:适合通用分享场景,支持多种分享方式(如邮件、消息应用等),但不适合需要发送到特定地址的场景。
ShareLink 在 SwiftUI 中分享内容 (Sharing Content in SwiftUI with ShareLink)[12] ShareLink是 SwiftUI 中对系统分享面板(UIActivityViewController
欢迎大家在 Discord 频道[2] 中进行更多地交流Q&AUIActivityViewControllerQ:是否有计划为 iOS 系统的 UIActivityViewController 添加 “