我想使用邮件应用程序将 vCards 导入我的 iOS 应用程序。我已将 public.vcard 添加到我的项目列表中。如果我尝试使用 UIDocumentInteractionController
在另一个应用程序中打开 vcard,一切都会按预期进行。但是,如果我尝试在邮件应用程序中打开 vCard,则会在邮件中打开 vCard,而我的应用程序没有选择。有解决办法吗?
更新: vcard 的 plist 条目看起来像
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>vCard</string>
<key>LSHandlerRank</key>
<string>Default</string>
<key>LSItemContentTypes</key>
<array>
<string>public.vcard</string>
</array>
</dict>
</array>
最佳答案
这个条目在我看来相当不完整。一般来说,如果您的应用程序能够打开某些类型,您需要有一个导入声明(如果文件格式由另一个应用程序拥有)或导出声明(如果格式由您拥有)
iOS 和 Mac 主要通过扩展来匹配 UTI,所以我猜你也需要在声明中包含它。检查 iOS 上的 UTI 函数是否确实有分配给文件扩展名的 public.vCard 类型。如果没有,则无法找到。
如果有这样的关联,我会在你的 plist 中添加一个 UTImportedTypeDeclarations,如果没有,我会添加一个 UTExportedTypeDeclarations
我写这个教程来解释你需要的所有东西:http://www.cocoanetics.com/2012/09/fun-with-uti/
关于iphone - ios 邮件应用程序无法在我的应用程序中打开 vcard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11873117/