3

私の 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 のバグのようです。ダイアログに私をリストしないか、実際にファイルを提供してください。

それとも私は何か間違ったことをしていますか?

4

1 に答える 1

0

passkit を使用して同様の問題に遭遇し、不正な MIME タイプを受け入れる解決策が見つかりませんでした。Excel から CSV へのコンバーターを追加して、Excel ファイルを受け入れることをお勧めします。(:

これに役立つ別の投稿があります: Objective-C (iPhone) で Excel ファイルからデータを読み取る

于 2013-05-22T14:55:40.840 に答える