ios 添加到系统分享

转载:http://blog.csdn.net/jymn_chen/article/details/16351565

iOS PDF之旅(二)将PDF文件Open In MyApp

写了一个很好的PDF阅读软件,那么怎么让用户根据提示打开我们的应用浏览阅读,提高程序的使用率呢?本文就是针对这个问题而来,方法:修改-Info.plist文件。

1.在plist文件中添加一个URLTypes字段,该字段指定程序的对外接口:


这部分可以参考我之前写的博客:iOS调用外部程序和系统程序

2.另外添加一个Documents Type字段,该字段指定与程序关联的文件类型,详情参考System-Declared Uniform Type Identifiers


其中CFBundleTypeExtensions指定文件类型,例如pdf,doc,这个是不能随便填的。

CFBundleTypeIconFiles指定用UIActionSheet向用户提示打开应用时显示的图标。

DocumentTypeName可以自定,对应文件类型名。

Document Content Type UTIs指定官方指定的文件类型,UTIs即Uniform Type Identifiers。

如果要关联多个文件类型可以在Document Types中设置多个Item,这里我设置的关联类型包括pdf,doc,ppt。


接下来上代码。

AppDelegate类的代码:

  1. //- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {  
  2. //    return YES;  
  3. //}  
  4.   
  5. -(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {  
  6.     if (url && [url isFileURL]) {  
  7.         DocumentViewController *documentViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateInitialViewController];  
  8.         [documentViewController handleDocumentOpenURL:url];  
  9.         return YES;  
  10.     }  
  11.     return NO;  
  12. }  


其中handleOpenURL确定是否处理外部程序的调用请求,后者则是打开文件的URL。

再看看DocumentViewController中的处理方法:

  1. - (void)handleDocumentOpenURL:(NSURL *)url {  
  2.     [self displayAlert:[url absoluteString]];  
  3. }  
  4.   
  5. -(void) displayAlert:(NSString *) str {  
  6.     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert"  
  7.                                                     message:str  
  8.                                                    delegate:nil  
  9.                                           cancelButtonTitle:@"OK"                                                                                         otherButtonTitles:nil];  
  10.     [alert show];  
  11. }  


Run:

打开邮箱客户端,随便打开一封邮件中的附件,如pdf,doc格式,选择用其它应用打开(建议真机调试):


上面图标P对应的程序就是我们的Demo。

点击该Demo,我们的程序将被启动,并调用openURL方法做出处理,结果如下:


AlertView显示的内容就是下载的文件的fileURL。

如果在Mac上运行,打开App的文件夹可以看到对应下载的文件:


该文件在App的Documents/Inbox/目录下。

好吧,将接收到的PDF,DOC,PPT等格式的文件与程序关联的工作已经完成,源文件就在我们下载的目录中,接下来想怎么折腾这个文件都可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值