为什么我不能注册我的iOS应用程序来处理图像文件类型?

Ale*_*ciu 13 iphone cocoa-touch objective-c ios

我在将图像文件类型注册到我的应用程序时遇到问题.我尝试将下面的代码添加到我的plist但没有任何反应.

<key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeName</key>
            <string>Scary Bug Document</string>
            <key>LSHandlerRank</key>
            <string>Alternate</string>
            <key>CFBundleTypeRole</key>
            <string>None</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.image</string>
            </array>
        </dict>
    </array>
Run Code Online (Sandbox Code Playgroud)

我注意到我可以注册其他文件类型,例如文本(更改public.imagepublic.text)但它不能用于图像("打开..."菜单没有显示我的应用程序).

可能导致这种情况的原因,我该如何解决?

Dim*_*iol 6

现在可以从iOS 7中的邮件应用程序打开图像,这有点令人费解:

点按并按住图像.点击"快速查看"以使图像全屏显示.点击图像以显示顶部工具栏.点击右上角的打开按钮.向左滚动列表以查找您的应用.

请务必为您感兴趣的图像类型设置捆绑文档类型.


bre*_*ret 6

Dimitri Bouniol通过快速查看在iOS 7中运行的响应是正确的.我在下面的info.plist中添加了以下内容,我是如何让它为我的应用程序工作的.仍然没有弄清楚如何分享照片或相机滚动工作.

  <key>CFBundleDocumentTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeExtensions</key>
            <array>
                <string>myapp image</string>
            </array>
            <key>CFBundleTypeName</key>
            <string>public.png</string>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>LSHandlerRank</key>
            <string>Alternate</string>
            <key>LSItemContentTypes</key>
            <array>
                <string>public.png</string>
                <string>public.jpeg</string>
            </array>
        </dict>
    </array>
    <key>UTImportedTypeDeclarations</key>
    <array>
        <dict>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.image</string>
            </array>
            <key>UTTypeIdentifier</key>
            <string>public.png</string>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>com.apple.ostype</key>
                <string>PNG</string>
                <key>public.filename-extension</key>
                <array>
                    <string>png</string>
                </array>
                <key>public.mime-type</key>
                <string>image/png</string>
            </dict>
        </dict>
        <dict>
            <key>UTTypeIdentifier</key>
            <string>public.jpeg</string>
            <key>UTTypeReferenceURL</key>
            <string>http://www.w3.org/Graphics/JPEG/</string>
            <key>UTTypeDescription</key>
            <string>JPEG image</string>
            <key>UTTypeIconFile</key>
            <string>public.jpeg.icns</string>
            <key>UTTypeConformsTo</key>
            <array>
                <string>public.image</string>
                <string>public.data</string>
            </array>
            <key>UTTypeTagSpecification</key>
            <dict>
                <key>com.apple.ostype</key>
                <string>JPEG</string>
                <key>public.filename-extension</key>
                <array>
                    <string>jpeg</string>
                    <string>jpg</string>
                </array>
                <key>public.mime-type</key>
                <string>image/jpeg</string>
            </dict>
        </dict>
    </array>
Run Code Online (Sandbox Code Playgroud)

  • 对我来说,它只需添加“CFBundleDocumentTypes”即可。不需要`UTImportedTypeDeclarations`。 (2认同)

Ale*_*ciu 2

经过一些研究后,似乎无法注册图像应用程序。感谢您的回答。