自定义文档类型图标和操作不起作用

时间:2018-06-20 22:50:49

标签: ios info.plist imessage uidocument uti

我通过子类化UIDocument(它是NSData的档案库)来创建自定义文档类型。我使用问题/答案对here做到了这一点。 UIDocument可以完美运行,但是当我导出/导入新文件类型时会出现问题。

这是我的info.plist中的我的文档类型:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string></string>
        </array>
        <key>CFBundleTypeIconFiles</key>
        <array>
            <string>320.png</string>
            <string>64.png</string>
            <string>44.png</string>
            <string>22.png</string>
        </array>
        <key>CFBundleTypeName</key>
        <string>TrailMap File</string>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>LSHandlerRank</key>
        <string>Owner</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.TrailMap.TrailMap</string>
        </array>
    </dict>
</array>

这是我的info.plist中的导出的UTI:

<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.data</string>
        </array>
        <key>UTTypeDescription</key>
        <string>TrailMap</string>
        <key>UTTypeIdentifier</key>
        <string>com.TrailMap.TrailMap</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <array>
                <string>trailmap</string>
            </array>
        </dict>
    </dict>
</array>

您可能会注意到,我的UTTypeConformsTo键的值是public.data。我写这篇文章是因为主题啤酒教程here很好。

当导出到Notes并导出到UTTypeConformsTo值为public.datapublic.item的电子邮件时,文件的外观如下: File with correct icon

这两个UTTypeConformsTo值均具有正确的图标和正确的操作。 (单击时,将显示“打开方式”对话框,其中显示了我的应用程序)绝对适合电子邮件和Notes导出,但不适用于iMessage。

这是导出iMessage字段时的样子: enter image description here

这是拥有我的应用程序的人的本机iMessage线程中的外观: enter image description here

这是没有我的应用程序的人的本机iMessage线程中的外观:

enter image description here

这就是问题所在。对于拥有该应用程序的人,该文件不仅会显示为未知类型,对于没有该应用程序的人,它还会显示一个文件夹图标,并且在导出时,根本没有任何图标。我希望有人告诉我如何修复该图标,但更重要的是,在iMessage中点击文件绝对没有任何作用,那么我需要对info.plist进行什么操作才能显示“打开于”对话框?

0 个答案:

没有答案