在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服务器为它们提供服务。这应该有所帮助。

+0

这个伎俩! +1 – Jukebox

+0

这也适用于我。我还发现,在导出的类型UTI中设置文件扩展名既是必要的也是足够的,而设置MIME类型既不是。 – Justin