iOS_系统原生分享
- 在iOS6.0之后,系统也提供了API实现分享功能,目前支持的分享途径参照
UIActivityType
。 - 部分分享途径,需要登录对应的账号。例如,通过腾讯微博实现分享,需要登录腾讯微博账号。
- 如果需要保存到系统相册,需要设置对应的隐私权限。
<key>NSPhotoLibraryUsageDescription</key><string>打开相册</string>
- 由于系统默认的是英文显示,如果需要显示中文,则需要修改对应的布尔值。
<key>CFBundleAllowMixedLocalizations</key><true/>
UIActivityViewController
- 1、导入框架
Social.framework
- 2、 设置分享的内容,并将内容添加到数组中
NSString *shareText = @"我的个人博客";UIImage *shareImage = [UIImage imageNamed:@"shareImage.png"];NSURL *shareUrl = [NSURL URLWithString:@"http://blog.csdn.net/flyingkuikui"];NSArray *activityItemsArray = @[shareText,shareImage,shareUrl];// 自定义的CustomActivity,继承自UIActivity
CustomActivity *customActivity = [[CustomActivity alloc]initWithTitle:@"wangsk" ActivityImage:[UIImage imageNamed:@"custom.png"] URL:[NSURL URLWithString:@"http://blog.csdn.net/flyingkuikui"] ActivityType:@"Custom" ShareContext:activityItemsArray];
NSArray *activityArray = @[customActivity];
- 3、初始化控制器,添加分享内容至控制器
UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItemsArray applicationActivities:activityArray];
activityVC.modalInPopover = YES;
- 4、设置回调
if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0) {// ios8.0 之后用此方法回调UIActivityViewControllerCompletionWithItemsHandler itemsBlock = ^(UIActivityType __nullable activityType, BOOL completed, NSArray * __nullable returnedItems, NSError * __nullable activityError){NSLog(@"activityType == %@",activityType);if (completed == YES) {NSLog(@"completed");}else{NSLog(@"cancel");}};activityVC.completionWithItemsHandler = itemsBlock;}else{// ios8.0 之前用此方法回调UIActivityViewControllerCompletionHandler handlerBlock = ^(UIActivityType __nullable activityType, BOOL completed){NSLog(@"activityType == %@",activityType);if (completed == YES) {NSLog(@"completed");}else{NSLog(@"cancel");}};activityVC.completionHandler = handlerBlock;}
- 5、调用控制器
[self presentViewController:activityVC animated:YES completion:nil];
- 6、运行结果,如图,其中红色圆圈部分就是自定义的CustomActivity
支持的分享类型和途径
- 截止iOS10.3.3,系统分享功能支持的分享途径。
// UIActivityType// 发布到Facebook
UIActivityTypePostToFacebook NS_AVAILABLE_IOS(6_0);
// 发布到Twitter
UIActivityTypePostToTwitter NS_AVAILABLE_IOS(6_0);
// 发布到新浪微博
UIActivityTypePostToWeibo NS_AVAILABLE_IOS(6_0);
// 信息
UIActivityTypeMessage NS_AVAILABLE_IOS(6_0);
// 邮件
UIActivityTypeMail NS_AVAILABLE_IOS(6_0);
// 打印
UIActivityTypePrint NS_AVAILABLE_IOS(6_0);
// 复制到剪切板
UIActivityTypeCopyToPasteboard NS_AVAILABLE_IOS(6_0);
// 指定给联系人
UIActivityTypeAssignToContact NS_AVAILABLE_IOS(6_0);
// 保存至本地相册(记得修改info.plist的隐私权限)
UIActivityTypeSaveToCameraRoll NS_AVAILABLE_IOS(6_0);
// 添加到阅读列表(Safari)
UIActivityTypeAddToReadingList NS_AVAILABLE_IOS(7_0);
// 发布到Flickr(图片分享网站)
UIActivityTypePostToFlickr NS_AVAILABLE_IOS(7_0);
// 发布到Vimeo(视频分享网站)
UIActivityTypePostToVimeo NS_AVAILABLE_IOS(7_0);
// 发布到腾讯微博
UIActivityTypePostToTencentWeibo NS_AVAILABLE_IOS(7_0);
// AirDrop
UIActivityTypeAirDrop NS_AVAILABLE_IOS(7_0);
// 在iBooks内打开
UIActivityTypeOpenInIBooks NS_AVAILABLE_IOS(9_0);
代码地址:
https://github.com/FlyingKuiKui/ShareTest.git
iOS_系统原生分享相关推荐
- UIActivityViewController实现系统原生分享
代码地址如下: http://www.demodashi.com/demo/11042.html 一.效果预览 二.接下来介绍UIActivityViewController,跟我动手做 1.创建要分 ...
- Android调用系统原生分享组件
想必做Android开发都会遇到的需求--分享. 实现需求和方式也都各自不一,有接入某个app的SDK进行分享,也有集成第三方平台例如友盟等等... 接下来所要说到的是Android系统提供的分享组件 ...
- 利用 Android 系统原生 API 实现分享功能
对于 App 的分享功能,基本上是一个刚需,本文主要介绍运用系统原生分享功能时候需要注意的一些问题.对于某些特定平台的一些高级分享特性,比如微信或者微博之类的分享来源标注,需要在其开放平台注册应用再接 ...
- 【安卓开发】调用系统原生的文件分享功能将文件分享给QQ或微信好友
调用系统原生的文件分享功能将文件分享给QQ或微信好友 核心代码: //传入的fileName是文件名的全路径@SuppressLint("QueryPermissionsNeeded&quo ...
- android原生分享功能,Android原生分享到微博、微信等平台的实现方式
在这个版本功能涉及到Android分享方式的变更,需求要求: 分享只支持新浪微博.微信,其他方式均去掉. 为了更好的测试还是要看下Android分享实现分享的方式,然后才能更好地评估测试时间和设计测试 ...
- Android原生分享图片和视频
前言 由于之前的分享的平台都是固定的:微信,微信朋友圈,QQ,微博- 分享的做法就是,用列表分别显示各个平台,然后点击某个选项跳转到对应平台 代码如下: private void share(File ...
- Android 调用系统的分享[完美实现同一时候分享图片和文字]
android 系统的分享功能 private void share(String content, Uri uri){Intent shareIntent = new Intent(Intent.A ...
- Unity实现IOS原生分享
一开始我以为接入ShareSDK去实现分享功能,没想到要实现IOS的原生分享去实现这个功能.本人对OC一点都不熟悉,一脸蒙蔽.然后我开始在网上去找资料,发现一篇Unity实现IOS的截屏分享功能,然后 ...
- 荣耀笔记本开机黑屏错误怎么U盘重装系统教学分享
荣耀笔记本开机黑屏错误怎么U盘重装系统教学分享.不少用户都有在使用电脑的时候遇到系统的故障,而遇到开机黑屏问题的时候,更多用户会请人来维修.其实没有这么麻烦,我们只需要准备一个U盘来进行系统的重新安装 ...
最新文章
- Vue.js 学习路线
- linux 脚本案例,30个关于Shell脚本的经典案例(上)
- 完美搞定《DOCKER IN ACTION》第二章示例
- 「禾连健康」轻松实现弹性降本20%以上,竟然是因为使用了它!
- 2017-9-15-Linux移植:WinSCP软件 SSH Server开启
- win10安装ipython_windows10下安装IPython notebook 用来查看.ipynb文档
- Java web之web.xml配置详解
- LeetCode 题 -7. 整数反转
- 使用 Swiftype 给 Hexo 搭建的博客添加站内搜索功能
- Hadoop3.3.1详细教程(四)Linux集群搭建+免密登录
- Struts2 通配符使用
- Python爬取疫情中高风险地区名单
- pyecharts本地文件_pyecharts 模块的简单使用(可视化神器)
- 在 Vue 中使用lodash对事件进行防抖和节流
- 订单可视化2实战-生产交付流程(流程再造核心区)
- LIKE视频网站无法登录服务器,解析视频地址失败,更换服务器也不行
- Win10系统“此电脑”误删了,或者无缘无故消失了,怎么找回?
- php如何看出是什么框架,拿到一个php源码怎么分析它用的是什么框架?
- 痞子衡嵌入式:ARM Cortex-M内核那些事(5)- 一表搜罗指令集
- Cadence LDO capless 电路,包括版图,已通过lvs ,drc检查,个人流片过,包括偏置全电路