ddn*_*dnv 15 iphone objective-c ios
有iPhone应用程序"另一个邮件客户端"应该能够打开任何文件作为附件发送.所以,我想将此应用程序与任何扩展名的文件相关联.
在文档之后,我们应声明对具有根UTI类型的文件的支持public.data
- 任何文件都应属于此类型.它有效,但根本没有.在这种情况下,我们的应用程序将无法打开任何文件,只能打开已在系统中注册的文件.例如,如果在任何应用程序(例如,dropbox)中我们将尝试使用UIDocumentInteractionController以未知扩展名(file.unknowntype)"打开..."文件,那么尽管我们已经已经存在,但答案将是否定的注册我们的应用程序,它支持根UTI类型public.data
.但是,如果您安装另一个支持扩展名为(*.unknowntype)的文件的应用程序,那么我们的应用程序也可以打开这些文件并显示在"open in ..."应用程序列表中.
UPD: @Gabriel这是我的info.plist文件的CFBundleDocumentTypes的一部分:
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>MyMail</string>
<key>LSItemContentTypes</key>
<array>
<string>public.data</string>
</array>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>Default</string>
<key>CFBundleTypeIconFiles</key>
<array>
<string>Icon29.png</string>
...
<string>Icon114.png</string>
</array>
</dict>
</array>
Run Code Online (Sandbox Code Playgroud)
我用以下设置制作了一个应用程序
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFiles</key>
<array/>
<key>CFBundleTypeName</key>
<string>name</string>
<key>LSItemContentTypes</key>
<array>
<string>public.data</string>
</array>
</dict>
</array>
Run Code Online (Sandbox Code Playgroud)
当我尝试从 Safari 打开 .pdf 时,此应用程序显示在“打开方式...”列表中。您可以制作一个示例应用程序并尝试一下吗?
更新:
似乎声明“public.data”(也尝试过 public.item、public.content)意味着文件,属于“系统 UTI 已知的所有”集合,而不是任何文件。因此,您将能够处理用户想要通过电子邮件发送的99% 的文件,但不是全部。另一种方法是导出您认为重要但默认情况下不在系统 UTI 中的 UTI。
归档时间: |
|
查看次数: |
3915 次 |
最近记录: |