在iOS上关联文件 - 从Safari中打开纯文本文件
问题描述:
我想在iOS上将基于文本的自定义文件类型与我的应用相关联。在iOS上关联文件 - 从Safari中打开纯文本文件
当我打开一个链接到一些PHP脚本后面的文件时,Safari会显示“open in”选项,其中包含我的应用程序,这是可以的。
但是,当我打开一个直接指向我的文件的链接(运行Web服务器用于测试目的)时,Safari决定它可以自己读取文件并自行显示内容。这绝对不行。
请注意,如果我替换任何二进制文件(zip,...)并使用我的扩展名,文件关联仍然可以工作。
在plist中,信息的代码:
<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类型吗?
答
为您的文件定义自定义MIME类型(即application/x-my.custom.type
),并让PHP或您的Web服务器为它们提供服务。这应该有所帮助。
这个伎俩! +1 – Jukebox
这也适用于我。我还发现,在导出的类型UTI中设置文件扩展名既是必要的也是足够的,而设置MIME类型既不是。 – Justin