2

私のアプリでは、画像や音声の有無にかかわらず、テキスト ファイルを他のユーザーにメールで送信できます。画像や音声がない場合、アプリはカスタム拡張子 (text.xxx など) を付けて「そのまま」テキスト ファイルを送信します。音声と画像がある場合、アプリはテキスト ファイルを画像と音声と共に、text.xxx.zip のような名前のファイルに圧縮します。

iOS 6 より前では、これは正常に機能していました。iOS 6 より前では、アプリには text.xxx.zip ファイルの URL が指定されていました。現在、iOS 6 では、ファイルがメールによって既に解凍されているように見え、text.xxx のみが openURL ハンドラーに送信されます。

誰かがこれについて経験がありますか?より良いアプローチの提案はありますか? ジッパー付きケース用の独自の拡張機能を考え出す必要があると考えています...

4

1 に答える 1

1

したがって、過去24時間ほどこれに頭を悩ませた後、これが問題を「解決」するものです。

1) 既存の添付ファイルのファイル名を test.xxx.zip から test.zip に変更します。iOS6 メールは、filename.xxx.zip という形式のものはすべて、実際には filename.xxx の圧縮バージョンであると想定しているようです。(多分それはどこかの標準ですか?) また、ファイル名を test.yyy.zip に変更すると、添付ファイルを開くことができないと言われたことにも注意してください。(おそらく、「.yyy」拡張子に誰も登録していないため)。

2) 今後は .zip 拡張子を使用しないようにコードを書き直して、同様の問題を回避します。

また、複数のドキュメント タイプ (.xxx、.zzz など) の場合、UTI 宣言でそれぞれに異なる MIME タイプを指定する必要があることも発見しました。そうしないと、Mail は最初に見つけた UTI 拡張子をオブジェクトに追加し、次に openURL を呼び出します。つまり、フラット ファイル (.xxx) と zip ファイル (.zzz) を処理するように設定されているが、同じ MIME タイプ (例: application/myappname) を使用し、"xxx" が最初に定義されている場合、ファイル「test.zzz」に対してopenURLが呼び出されると、実際には「test.xxx」としてopenURLに渡されます。

于 2012-11-15T14:59:43.483 に答える