概述
第三方调用自己的App打开文件
在程序中有这样的需求,例如QQ中有个pdf文件,然后可以让自己的app打开这个pdf文件,弹出的选择框如下:
先要在Target->Info->Document Types下注册app支持的类型,可参考Registering the File Types Your App Supports
即在Info.plist
包含CFBundleDocumentTypes
,CFBundleDocumentTypes
是一个字典的集合,可以包含下面的key:
CFBundleTypeName
specifies the name of the document type.
指定文档类型名称CFBundleTypeIconFiles
is an array of filenames for the image resources to use as the document’s icon.
是一个数组,包含多个图片文件名,用于作为该文档的图标LSItemContentTypes
contains an array of strings with the UTI types that represent the supported file types in this group.
是一个数组,包含多个 UTI 类型的字符串。UTI 类型是本文档类型(组)所包含的文件类型LSHandlerRank
describes whether this application owns the document type or is merely able to open it. (For a list of values for LSHandlerRank, see CFBundleDocumentTypes.)
表示应用程序是“拥有”还是仅仅是“打开”这种类型而已
如进行如下的设置:
Types的值可以参考System-Declared Uniform Type Identifiers
之后,Info.plist
会包含如下的内容:
设置之后,还需要在AppDelegate
实现如下的方法:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
获取到传递过来的url,我自己测试了下,打开的文件都被复制到了沙盒的Document/Inbox
目录下
如果要预览文件,可能还需要将url中的file://
替换为空字符串
参考文档:
- iOS中打开的文件如何用其他应用打开选择自己的app
- iOS实现App之间的内容分享
- 为自己的APP增加OpenIn功能
- iOS-关于使用其他应用打开本应用文档
- UIDocumentInteractionController之程序间文档共享
最后
以上就是壮观彩虹为你收集整理的第三方调用自己的App打开文件第三方调用自己的App打开文件的全部内容,希望文章能够帮你解决第三方调用自己的App打开文件第三方调用自己的App打开文件所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复