如何用其他app打开里的文件

Supporting Open In… menu item in app for Safari and Mails

在iPhone 或者 iPad的Safari如果遇到文档的链接,例如PDF,Doc之类的Safari会自动打开,而且会出现备选的Open in选项,可以选择已经安装的不同Apps来打开这个文档。

如下图显示(PDF文件):


之后选择Open in,会出现各种支持打开PDF文件的Apps:


之后选择任何一个App打开这篇文档,文档就会在存储在那个App下并且打开了。

 

如果想实现这个功能, 需要在App程序中的Info.plist中配置.

1.配置Document types

  • Document Type Name(CFBundleTypeName): 定义Document type的名字.

  • CFBundleTypeIconFiles: 是一个Array, 用来定义如截图中显示的小图(在iPhone上尺寸22的是普清, 44是高清). 注意: 这个Key必须填写(我因为没加这个调了好久呢!)

  • Document Content Type UTIs (LSItemContentTypes): 定义支持的类型,上面是我的程序支持的类型,可以通过这个链接查询其他的文档类型UTI Types.

  • Handler rank(LSHandlerRank): describes whether this application owns the document type or is merely able to open it. (这个是官方文档的描述,我目前只是设置过Owner, 其他的选项没有用过)

  • Role (CFBundleTypeRole): 对这个文档的使用权限, 我设置的是Editor,当然还可以设置Viewer或者其他的.

     

2.在程序App Delegate中处理打开的文档.

  • 在Safari选择Open in中的App后,系统会进入App,然后调用这个回调函数:

    - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url

    url为这个文档的路径, 你可以直接打开这个文档, 也可以把它存到你的App中再打开.

     

     

3.配置系统不支持的文档类型


  • 有一些文档的格式类型iOS是不支持的,需要自己配置Exported Type UTIs,比如ePub格式(上图是ePub的配置过程, 其他的格式类型配置应该也类似).

  • 注意: 这个配置之后, 一定要在Documents types添加这个类型, 我上面的截图已经添加.

     

附: 如果App需要在Safari输入一些Custom的链接来打开自己的App, 可以配置URL types


  • 主要就是配置URL identifier和URL Schemes这两个Key

  • URL identifier: 就是App的identifier

  • URL Schemes: 就是打开到你App所需要的链接(例如我配置的是docinbookreader,那么链接就可以是docinbookreader:// 或者docinbookreader://some/path...)

  • 还是回调- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 来处理你的URL链接.

  • 如果配置了这个,还可以判断手机中是否安装了这个软件,使用这个方法:

    [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"docinbookreader://"]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值