私の Info.plist ファイルには次のものがあります。
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeName</key>
<string>CSV Data</string>
<key>LSHandlerRank</key>
<string>Alternate</string>
<key>LSItemContentTypes</key>
<array>
<string>public.comma-separated-values-text</string>
</array>
</dict>
</array>
これは主に機能します。
スクリュー ケースは、誰かが Windows で Excel スプレッドシートを取得し、CSV として保存し、それを自分の iPad に電子メールで送信して、私のアプリにインポートしたときに発生しました。
メール クライアントは添付ファイルに application/vnd.ms-excel の MIME タイプを与えましたが、これは正しくないと見なされる可能性があります。MIME タイプは、Excel からエクスポートされたファイルだけでなく、実際には Excel 形式のファイルに使用されることを期待しています。
iOS のメール アプリで、添付ファイルを長押しして、別のアプリでファイルを開きます。ここが間違っているところです。
私のアプリが利用可能なアプリのリストに含まれます。これを正しいと呼ぶべきか、間違っていると呼ぶべきか、私にはわかりません。ファイルは CSV で、.csv というサフィックスが付いているので、私のアプリがパーティーに招待されたことをうれしく思います。しかし...
次に、アプリをクリックしてそのファイルを開くと、「機能しません」。つまり、AppDelegate の OpenURL メソッドが呼び出されません。
この場合、2 つの間違いが正しいことになります。私がうそをついて com.microsoft.excel.xls を LSItemContentTypes に追加すると、それは「動作」します。つまり、(1) 私のアプリは引き続き [開く] ダイアログに表示され、(2) iOS は実際にファイルを提供し、( 3) ファイルは実際には Excel 形式ではなく CSV 形式であるため、私のアプリは問題なく処理できます。
しかし今、アプリは実際の Excel ファイルをサポートしていると主張していますが、実際にはサポートしていません。
これは iOS のバグのようです。ダイアログに私をリストしないか、実際にファイルを提供してください。
それとも私は何か間違ったことをしていますか?