文档章节

如何使用UIActivityViewController

S
 SheamUs_lcc
发布于 2016/05/23 16:33
字数 534
阅读 11
收藏 0

AirDrop是iOS7中新增的一个近距离分享功能,两个相邻的iOS设备可以通过AirDrop实现传递图片、文件等功能,有了AirDrop基本上可抛弃类似Dropbox的ShareLink和PublicFolder功能。

iOS7的SDK中已经在UIActivityViewController中内置了AirDrop功能,使用时与分享到twitter和facebook的方式基本一致,只需要将需要传递的文件URL设置给UIActivityViewController对象的ActivityItems对象即可,区别在于:如果传递文件,那么URL应该是“file://”开头,而不是常见的“http://”开头  

参考代码: 

1
2
3
4
5
6
NSString *filePath = "Documents/aaa.png"
NSURL *url = [NSURL fileURLWithPath:filePath]; 
NSArray *items = [NSArray ArrayWithObjects:url,nil];
UIActivityViewController *activityViewController = 
  [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];
[self presentViewController:activityViewController animated:YES completion:nil];

如果只想使用AirDrop而不使用其他分享功能,只需要设置UIActivityViewController的excludedActivityTypes属性即可。  
以下是可以隐藏的对象 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#6.0开始支持
UIKIT_EXTERN NSString *const UIActivityTypePostToFacebook     
UIKIT_EXTERN NSString *const UIActivityTypePostToTwitter      
UIKIT_EXTERN NSString *const UIActivityTypePostToWeibo        
UIKIT_EXTERN NSString *const UIActivityTypeMessage            
UIKIT_EXTERN NSString *const UIActivityTypeMail               
UIKIT_EXTERN NSString *const UIActivityTypePrint              
UIKIT_EXTERN NSString *const UIActivityTypeCopyToPasteboard   
UIKIT_EXTERN NSString *const UIActivityTypeAssignToContact    
UIKIT_EXTERN NSString *const UIActivityTypeSaveToCameraRoll   
#7.0以后新增
UIKIT_EXTERN NSString *const UIActivityTypeAddToReadingList   
UIKIT_EXTERN NSString *const UIActivityTypePostToFlickr       
UIKIT_EXTERN NSString *const UIActivityTypePostToVimeo        
UIKIT_EXTERN NSString *const UIActivityTypePostToTencentWeibo 
UIKIT_EXTERN NSString *const UIActivityTypeAirDrop

具体用法如下,这里只保留AirDrop:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
NSArray *excludedActivities = @[UIActivityTypePostToFacebook, 
                UIActivityTypePostToTwitter,
                UIActivityTypePostToWeibo, 
                UIActivityTypeMessage, 
                UIActivityTypeMail, 
                UIActivityTypePrint,
                UIActivityTypeCopyToPasteboard, 
                UIActivityTypeAssignToContact, 
                UIActivityTypeSaveToCameraRoll, 
                UIActivityTypeAddToReadingList,
                UIActivityTypePostToFlickr, 
                UIActivityTypePostToVimeo, 
                UIActivityTypePostToTencentWeibo]; 
activityViewController.excludedActivityTypes = excludedActivities;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
NSString *filePath = "Documents/aaa.png"
NSURL *url = [NSURL fileURLWithPath:filePath]; 
NSArray *items = [NSArray ArrayWithObjects:url,nil];
UIActivityViewController *activityViewController = 
  [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil]; 
NSArray *excludedActivities = @[UIActivityTypePostToFacebook, 
                UIActivityTypePostToTwitter,
                UIActivityTypePostToWeibo, 
                UIActivityTypeMessage, 
                UIActivityTypeMail, 
                UIActivityTypePrint,
                UIActivityTypeCopyToPasteboard, 
                UIActivityTypeAssignToContact, 
                UIActivityTypeSaveToCameraRoll, 
                UIActivityTypeAddToReadingList,
                UIActivityTypePostToFlickr, 
                UIActivityTypePostToVimeo, 
                UIActivityTypePostToTencentWeibo]; 
activityViewController.excludedActivityTypes = excludedActivities; 
[self presentViewController:activityViewController animated:YES completion:nil];

关于文件路径URL,一般APP的用户数据都在APP的Documents目录下,使用”Documents/aaa.png”的方式即可取得  
如果需要使用Bundle路径下的文件可以使用以下方式 

1
2
3
4
5
6
7
8
9
10
11
12
NSString *fileName=@"aaa.png"
NSArray *fileComponents = [filename componentsSeparatedByString:@"."]; 
NSString *filePath = nil;
if([fileComponents count] == 0) {
}else if([fileComponents count] == 1) {
  filePath = [[NSBundle mainBundle] pathForResource:[fileComponents objectAtIndex:0] 
                                             ofType:nil]; 
}else if([fileComponents count] == 2) {
  filePath = [[NSBundle mainBundle] pathForResource:[fileComponents objectAtIndex:0] 
                                             ofType:[fileComponents objectAtIndex:1]]; 
}
NSURL *url = [NSURL fileURLWithPath:filePath];

本文转载自:http://www.lidaren.com/archives/1269

共有 人打赏支持
S
粉丝 0
博文 1
码字总数 0
作品 0
廊坊
私信 提问
关于文件应用间共享的问题

在做一个文件管理的应用,其中一个功能是在系统已安装的其它App中打开某个文件 第一步需要在UIActivityViewController中列出所有支持改文件类型的已有App,如图: 但是用了UIActivityViewCon...

pixlee
2014/08/21
52
0
使用系统的UIActivityViewController实现分享功能遇到的问题

使用系统的UIActivityViewController实现分享功能,分享到QQ的链接,会自动加载成图片,能设置分享类型吗

YAYAYAYAJIE
2016/03/28
213
0
iOS App之间传递数据的几种方式

UIDocumentInteractionController UIActivityViewController Shared Keychain Access Custom URL Scheme Web Service iCloud API UIPasteboard 参考 http://enharmonichq.com/sharing-data-l......

Redding
2014/12/05
0
0
iOS 全屏侧滑手势/UIScrollView/UISlider间滑动手势冲突

一、前期准备 有一个支持全屏侧滑返回的视图控制器ViewController,ViewController.view上有一个UIScrollView,UIScrollView上有UISlider。俺直接在之前的示例Demo上演示,简书地址:iOS 自定...

且行且珍惜_iOS
2018/08/17
0
0
UIActivityViewController调用后,如何改显示的weibo为中文?

这些如何改成中文?谢谢!(编码里没有这些字眼,估计要在哪里设置,我info.plist 里面“Localization native development”的值已经改成“China”,也不行)...

jsyang888
2013/04/12
633
2

没有更多内容

加载失败,请刷新页面

加载更多

漏洞防御与修复工作

漏洞管理工作是企业安全建设必不可少的一环,在风险管理工作中,漏洞管理能够防患于未然,企业对漏洞管理有着广泛的基础建设和实践经验。但随着攻防技术的发展,传统漏洞管理的安全技术和管理...

linuxprobe16
16分钟前
0
0
MicroPython技术及应用前景

1 Micropython技术是什么? MicroPython极精简高效的实现了Python3语言。它包含Python标准库的一小部分,能在单片机和受限环境中运行。 1.1 MicroPython发展 由剑桥大学的理论物理学家乔治....

bodasisiter
22分钟前
0
0
跟我学Spring Cloud(Finchley版)-13-通用方式使用Hystrix

本节详细讲解使用Hystrix的通用方式。 简介 Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。Hystrix主要...

周立_ITMuch
31分钟前
0
0
🛠️Hanjst/汉吉斯特更新加JavaScript运行时优化等

这是 Hanjst/汉吉斯特 发布以来的首个主要升级更新版本。这次的主要升级更新的内容包括移除HTML Comments注释行, 优化在 Hanjst include模板文件时的JavaScript运行时环境。 Hanjst 在设计和...

wadelau
今天
2
0
OSChina 周六乱弹 —— 舔狗是没有好下场的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听什么# #今天听这个# 分享 Nirvana 的歌曲《Smells Like Teen Spi...》 《Smells Like Teen Spi...》- Nirvana 手机党少...

小小编辑
今天
494
13

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部