iOS系统中为了更好的进行类型标识,而提供的一套共用的规范,(Uniform Type Identifier) Apple文档。
UTI 定义
下图为Apple定义的jpeg的 UTI类型 - public.jpeg
uti
使用UTI来实现app之间文件传输
- 使用系统UTI
假如我们要实现 QQ 把doc文件传输 到自己的app中,查看文档可以看到系统定义的doc的uti类型 UTI文档
word.doc
然后把 com.microsoft.word.doc 添加到info.plist 的 Document Content Type UTIs中
791DB9A6-A06F-49BF-8BCF-B46011791FC8.png
- Handler rank 有四个值Owner、Default、Alternate、None 不同的权限显示的位置不同Owner> Default> Alternate> None
info.plist 所有key Apple文档
在QQ上选择doc文件,选择其他程序打开时,就会显示我们的app。点击app系统会把传输的文件放到我们自己app的inbox目录下。copy结束后会执行 appDelegate中的方法:
func application(_ app: UIApplication, open url: URL,
options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
FileStorage.storage(url: url)
return true
}
- 自定义UTI
假如我们有一个stl格式的文件 stl(3D模型文件类型)想通过QQ等app 传输到我们自己的app中然后显示3D模型。
根据 Apple UTI 自定义uti,自定义的uti要Exported Type UTI 才可以使用,在info.plist中添加key: Exported Type UTIs UTI文档
.stl
把定义的stl 的uti Identifier 添加到info.plist的 Document types -> Document Content Type UTIs 中、就可以实现 .stl 后缀的文件传输
2D19733A-C296-4DF7-A84C-772B3731390B.pnguti.gif
网友评论