【问题标题】:Add a file association with tiff files on iOS在 iOS 上添加与 tiff 文件的文件关联
【发布时间】:2011-02-23 16:54:51
【问题描述】:

我想在我的 iOS 应用程序中创建一个与 tiff 文件关联的文件(即,让我的应用程序显示为从 Mail 或 Safari 打开 tiff 文件的目标)。将以下内容添加到我的 Info.plist 文件似乎不起作用:

<key>CFBundleDocumentTypes</key>
<array>
  <dict>
    <key>CFBundleTypeName</key>
    <string>tiff</string>
    <key>LSItemContentTypes</key>
    <array>
      <string>public.tiff</string>
    </array>
    <key>LSHandlerRank</key>
    <string>Alternate</string>
  </dict>
</array>

我有一个以相同方式与 PDF 关联的应用程序,它运行良好。我认为在 iOS 上无法将应用与 tiff 文件类型相关联,但我找不到任何说明这一点的文档。

有没有其他人幸运地让这个工作或找到一个明确的“不,你不能那样做”?

【问题讨论】:

    标签: iphone ios tiff


    【解决方案1】:

    我为此烧了一个 Apple TSI(我似乎从来没有最终使用它们),官方的回答是:不,你不能这样做。

    我已在 Apple 的错误报告网站上记录了增强请求:http://developer.apple.com/bugreporter/,如果此问题对您来说是个问题,我建议您也这样做。

    【讨论】:

    • 您是唯一拥有这方面实际信息的人,先生。我向你们致敬。这仍然是一个问题,以防其他人可能想知道。从 public.image 继承的任何内容都不会让您的应用进入共享屏幕。
    • 我相信我已经观察到了另一个线索。当系统在 TIFF 图像预览上出现错误时,它将允许注册了 mime 类型的应用程序打开它。我有大量的 TIFF 图像来测试我的代码,其中许多不会使用 Apple 的内置代码加载,因此可以通过我的应用程序的文件关联打开这些图像。
    【解决方案2】:

    Acorn 为 TIFF 声明文件关联,这似乎工作正常。

    我可以看到 Acorn 的实现与您的实现之间的唯一区别是 Gus 省略了 CFBundleTypeName 并添加了 LSIsAppleDefaultForType(设置为 true)。您可能想尝试一下。

    LSIAppleDefaultForType 未记录。这里有一个参考:http://lists.apple.com/archives/cocoa-dev/2006/Jun/msg00747.html

    【讨论】:

    • 感谢您的提示,但不幸的是,添加 LSIsAppleDefaultForType 对我没有任何影响。
    • 只是检查一下,您所指的 Acorn 是 OS X 应用程序flyingmeat.com/acorn,而不是 iOS 应用程序?
    • 不用担心...绝对值得一试:)
    • 在 Xcode 11.4 中添加 LSIsAppleDefaultForType 键会导致“无法从文件中读取属性列表”构建错误。
    【解决方案3】:

    一般注意事项 - Mail 和 Safari 应用程序确实不允许您“使用 ..” tiff 文件打开(在 iOS8 中仍然如此);
    不过,许多其他应用程序,例如 Dropbox、GDrive 等,确实允许您这样做。

    【讨论】:

    • 应该是评论,而不是答案。
    猜你喜欢
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 2012-02-23
    • 2020-07-13
    • 1970-01-01
    • 1970-01-01
    • 2021-10-24
    • 2013-08-16
    相关资源
    最近更新 更多