1

Uniform Type Identifiers を実装し、単一の添付ファイルを電子メールで送信すると、 によって定義されたファイルの内容をstringWithContentsOfURL含む を返します。 NSStringNSURL

多数のファイルが添付された電子メールからファイルを選択すると、添付されたstringWithContentsOfURLすべてのファイルがヘッダー情報とともにNSString.

選択したファイルだけを開く方法はありますか?

アップデート:

  • ユーザーが最初にファイルに触れると、ファイルは期待どおりに処理されます。ユーザーは何度でもタッチでき、すべて問題ありません。
  • 後続のファイル、電子メールの生のソースから電子メール ヘッダーを除いたものは、NSURL で表されるファイルとして保存されます。
  • この動作は、iPhone 6.0.1 および iPad 5.1.1 で確認されています。

生のソースを解析して、NSURL から選択されたファイルを特定できますが、これは問題になる可能性があると思います。

更新終了

コード (どちらの場合も URL は単一のファイルを指します)。ファイル拡張子は *.defects です

NSString *file = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error];

添付ファイルが 1 つのメールの結果

"Defect Names"
"Test1 Area"
"Test2 Area"
"Test 3 Area"
"Test 4 Area"
"Extra"

複数の添付ファイルがあるメールの結果

--Apple-Mail=_785C0CB9-CB2F-43BE-AD5F-D7DEF5F97EFC
Content-Disposition: attachment;
    filename=Areas.defects
Content-Type: defects/x-defects;
    x-unix-mode=0644;
    name="Areas.defects"
Content-Transfer-Encoding: 7bit

"Area of Defect"
"Test1 Area"
"Test2 Area"
"Test 3 Area"
"Test 4 Area"
"Extra"

--Apple-Mail=_785C0CB9-CB2F-43BE-AD5F-D7DEF5F97EFC
Content-Disposition: attachment;
    filename="pos.defects"
Content-Type: defects/x-defects;
    x-unix-mode=0644;
    name="pos.defects"
Content-Transfer-Encoding: 7bit

"Position of Item"
"Test1 Position"
"Test2 Position"
"Test 3 Position"
"Test 4 Position"
"Extra"

...
--Apple-Mail=_785C0CB9-CB2F-43BE-AD5F-D7DEF5F97EFC--
4

1 に答える 1

0

私はこの振る舞いに驚いていますが(ユーザーがタップした添付ファイルだけが表示されると思っていたでしょう)、これを解決するのは難しくありません。

マルチパートメッセージを個々の添付ファイルに分割するマルチパートMIMEスキャナーを簡単に作成できます。

送信される電子メール内に実際に個別のファイルがあることを確認しますか?生のメッセージを調べます。

また、UTI登録を誤って設定した可能性があります。私の記事を読んでください:http://www.cocoanetics.com/2012/09/fun-with-uti/

通常、File Open In(別のアプリから)を介してアプリを開くと、受信アプリのDocument/Inboxフォルダーにあるファイルのコピーを指すファイルURLが渡されます。このURLを調べて、システムがそこに配置するファイルの種類を確認します。削除しない場合は、Xcodeオーガナイザーを使用してアプリフォルダーの内容をデスクトップにコピーできます。

于 2012-12-17T06:39:33.393 に答える