在打开一些文件时,常常能够看到有在XXXAPP中打开,例如使用照片查看器查看图片,或者是经过QQ、微信分享之类的功能。那么这个功能是怎么实现的呢,其实很是简单,只须要在 Info.plist
文件中进行相关的配置便可在文件分享页面看到本身APP的图标了。html
首先咱们要先了解一下UTI,由于网上能够搜到的资源实在是比较少,怕本身忘记仍是先记录一下。bash
UTI是苹果公司提供的统一类型标识符,用于对文件类型进行识别。因此只有咱们在配置了相关的属性后,才能让APP识别对应的文件类型,让本身显示在文件的分享界面。微信
咱们能够看到,苹果公司已经为咱们提供了不少预设的文件类型,基本咱们经常使用的文件类型都有涉及,例如图片,视频,PDF等。具体能够进入苹果的开发者文档查看一共提供了哪些预设,咱们须要用到的是表格中 Identifier
类目的字段来表示对应UTI。 developer.apple.com/library/arc…app
之前实现这个功能须要到 Info.plist
文件中进行编辑,如今只须要到 project
的 info
选项卡中的 DocumentTypes
进行配置便可,有图形界面比较友好。ui
name
和想要打开文件的对应 UTI
CFBundleTypeRole
并设置为 Editor
LSHandlerRank
并设置为 Owner
实现自定义 UTI
须要到 DocumentTypes
下方的 Exported UTIs
中设置。url
Description
中设置简介Identifier
中设置 UTI
标识符Conforms To
中设置 UTI
继承的类型UTTypeTagSpecification
并设置类型为 Dictionary
public.filename-extension
并设置为 Array
item
并将内容设置为要识别的文件后缀便可既然从外部分享了文件到APP,或者用APP打开了外部文件,那么APP应该在哪里获取文件并进行处理呢?spa
答案是在 APPDelegate.m
中的方法code
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(nonnull NSDictionary<NSString *,id> *)options
复制代码
写在这里便可,本地文件经过 url
传进来。orm