iphone - ios 邮件应用程序无法在我的应用程序中打开 vcard

标签 iphone objective-c ios email vcf-vcard

我想使用邮件应用程序将 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/

相关文章:

ios - 启用分页时将水平滚动 Collection View 的单元格居中,并使其他单元格部分可见

iphone - 不想将内容集中在 UITableViewCell

iphone - 如何在Object-c中格式化来自iphone的azure表存储请求

ios - 如何通过按钮和点击外部正确关闭 UIAlertController?

objective-c - 调试 QuickLook 插件时出现 'bundle is damaged' 错误

iphone - UIGraphicsGetImageFromCurrentImageContext返回意外的nil

ios - 可以将自动调整大小掩码与自动布局混合使用吗?

iphone - 不使用 Storyboard的 iOS 6 屏幕旋转

iphone - TableView 为每个 View 添加相同的功能

iphone - 如何从自定义对象访问 mainViewController 方法?