あなたはUIActivityViewControllerのコントロールが非常に限られていますが、よく知られているMIMEタイプを付けている場合は、関連するファイル拡張子をファイルURLに指定することで正しく動作することがわかりました。あなたの添付ファイルがvCardのであれば、例えば、ファイルのURLに「の.vcf」の拡張子を使用:
NSString *docsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
// The file extension is important so that some mime magic happens!
NSString *filePath = [docsPath stringByAppendingPathComponent:@"vcard.vcf"];
NSURL *fileUrl = [NSURL fileURLWithPath:filePath];
[data writeToURL:fileUrl atomically:YES]; // save the file
// Now pass the file URL in the activity items array
UIActivityViewController *avc = [[UIActivityViewController alloc] initWithActivityItems:
@[@"Here's an attached vCard", fileUrl] applicationActivities:nil];
[vc presentModalViewController:avc animated:YES];
これは実際に働いて、感謝の印:私はこれをアプリケーションのカスタムファイルを作成する方法(例えば.myAppを使用しているファイル)の別のガイドと組み合わせて、fileURLと同様に動作させました。 – Setomidor
この古い質問を提出して申し訳ありませんが、[[data writeToURL:filePath atomically:YES] 'は[data writeToURL:fileURL atomically:YES]'ではありませんか? –
@GabrielePetronellaはい、または[data writeToFile:filePath atomically:YES]と同様に動作します。 –