项目中经常遇到这种需求:通过微信、QQ或其他软件接收到一个Word、PDF格式的文件,需要传递到我们的APP中。如下图所示。那么,怎样实现这个功能能,跟我走~~~
一、需要传递的文件类型分为两类:
1、已知类型(例如后缀名为doc、PDF等文件)
2、自定义类型(自己生成的特定格式的文件)
二、方法:
1)已知类型文件的传递
在plist文件中按下图所示配置(这里以PDF文件为例)
参数说明:
Document Type Name:文档的类型名称(自定义输入)
Handler rank:字符串类型,包含Owner,Default,Alternate,None四个可 选值,指定对于某种类型的优先权级别,而Launcher Service会根据这个优先级别来排列显示的App的顺序。优先级别从高到低依次是Owner,Alternate,Default。None表示不接受这种类型。
Document Content Type UTIs:文件类型的UTI ,数组类型,包含UTI字符串,指定我们的应用程序所有可以识别的类型集合。通过官方文档查询文件对应的值:developer.apple.com/library/mac/#documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html
2)自定义文件类型
因为自定义类型官方没有对应的Document Content Type UTIs,所以需要我们在程序中手动添加支持的类型!
2.1)在plist文件中配置如下参数:
参数说明:
public.filename-extension:这里填写你自定义文件的扩展名。
identifier:不重复的id.可以使用自己的app的bundle id
2.2)添加类型支持
以上步骤就是添加我们的APP支持的文件类型。
在APPdelegate中调用下面的方法就可以获取导入进来的文件。然后存到你想存的本地目录就可以了
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation