1

我想将基于文本的自定义文件类型与我在 iOS 上的应用程序相关联。

当我打开某个 php 脚本后面的文件的链接时,Safari 会在其中显示我的应用程序的“打开方式”选项,这没关系。

但是,当我打开一个直接指向我的文件的链接(运行一个 Web 服务器以进行测试)时,Safari 决定它可以读取文件本身并自行显示内容。这绝对不行。

在旁注中,如果我替换任何二进制文件(zip,...)并使用我的扩展名,文件关联仍然可以工作。

plist-info中的代码:

<key>CFBundleDocumentTypes</key>
<array>
    <dict>
        <key>CFBundleTypeIconFiles</key>
        <array>
            <string>320.png</string>
            <string>64.png</string>
        </array>
        <key>CFBundleTypeName</key>
        <string>My File</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSHandlerRank</key>
        <string>Owner</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>com.Company.Product.ext</string>
        </array>
    </dict>
</array>
<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.data</string>
            <string>public.content</string>
            <string>public.text</string>
            <string>public.plain-text</string>
            <string>public.utf16-plain-text</string>
            <string>public.utf16-external-plain-text</string>
            <string>public.utf8-plain-text</string>
        </array>
        <key>UTTypeDescription</key>
        <string>My File</string>
        <key>UTTypeIdentifier</key>
        <string>com.Company.Product.ext</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <string>ext</string>
            <key>public.mime-type</key>
            <string>application/octet-stream</string>
        </dict>
    </dict>
</array>

我的问题是:如何说服 Safari 不打开文件本身?它甚至可能吗?我是否必须使用“application/octet-stream”以外的某些 mime 类型?

4

1 回答 1

4

为您的文件定义一个自定义 MIME 类型(即application/x-my.custom.type),并让 PHP 或您的 Web 服务器为它们提供服务。这应该会有所帮助。

于 2012-05-15T16:43:03.977 回答