2012-05-14 9 views
1

テキストベースのカスタムファイルタイプをiOSのアプリケーションに関連付ける必要があります。iOSで関連付けられているファイル - Safariからプレーンテキストファイルを開く

いくつかのPHPスクリプトの背後にあるファイルへのリンクを開くと、Safariはそのアプリケーションに「open in」オプションを表示します。これは問題ありません。

しかし、自分のファイル(テスト目的でWebサーバーを実行している)を直接指すリンクを開くと、Safariはファイル自体を読み取ってコンテンツを単独で表示できると判断します。それは間違いなくOKです。

バイナリファイル(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> 

私の質問は次のとおりです。ファイル自体を開けないためにサファリを説得する方法?それは可能ですか? 「application/octet-stream」以外のMIMEタイプを使用する必要がありますか?

答えて

4

ファイルにカスタムMIMEタイプ(つまり、application/x-my.custom.type)を定義し、PHPまたはウェブサーバーにそれらを配信させます。これは助けになるはずです。

+0

これはトリックでした! +1 – Jukebox

+0

これも私のために働いた。また、エクスポートされたタイプのUTIでファイル拡張子を設定することは、必要かつ十分であり、MIMEタイプを設定することもどちらでもないことがわかりました。 – Justin

関連する問題