【问题标题】:ios mail app does not open vcard in my appios邮件应用程序无法在我的应用程序中打开电子名片
【发布时间】:2012-08-08 21:01:56
【问题描述】:

我想使用邮件应用程序将 vCard 导入我的 iOS 应用程序。我已将 public.vcard 添加到我的项目列表中。如果我尝试使用 UIDocumentInteractionController 在另一个应用程序中打开电子名片,一切都会按预期工作。但是,如果我尝试在邮件应用程序中打开电子名片,电子名片会在邮件中打开,而我的应用程序没有选择。有解决办法吗?

更新: 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>

【问题讨论】:

标签: iphone objective-c ios email vcf-vcard


【解决方案1】:

对我来说,这个条目看起来相当不完整。通常,如果您的应用程序能够打开某些类型,您需要有一个导入声明(如果文件格式归另一个应用程序所有)或导出声明(如果格式归您所有)

iOS 和 Mac 主要通过扩展来匹配 UTI,所以我想你也需要在声明中包含它。检查 iOS 上的 UTI 功能是否确实为您的文件扩展名分配了 public.vCard 类型。如果没有,则找不到。

如果存在这样的关联,我会在您的 plist 中添加一个 UTImportedTypeDeclarations,如果没有,则添加一个 UTExportedTypeDeclarations

我写了这个教程来解释你需要的所有东西:http://www.cocoanetics.com/2012/09/fun-with-uti/

【讨论】:

    【解决方案2】:

    从 iOS 7.0.4 开始,这似乎是不可能的。

    iOS 在邮件应用中处理某些文件类型的方式似乎与其他文件不同。在邮件应用程序中,您将无法在非 Apple 应用程序中打开这些文件类型。

    您可以通过使用 UIDocumentInteractionController 以编程方式打开文件来验证这一点。这将提示用户在许多应用程序中打开文件(在所有注册此文件类型或更通用的应用程序中。Dropbox 应用程序,例如几乎打开所有内容)。

    当您向自己邮寄完全相同的文件并尝试在“邮件”应用中打开它时,您将无法获得这些选项(例如 Dropbox)。

    我通过注册 VCard/.vcf、Jpegs 和自定义类型验证了这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-30
      • 1970-01-01
      • 1970-01-01
      • 2018-03-20
      • 2018-01-31
      • 1970-01-01
      • 1970-01-01
      • 2017-01-13
      相关资源
      最近更新 更多