2

私には(私にとって)大きな問題があります。自分のアプリから別の iOS デバイスに vcf ファイルをエアドロップで送信したいと考えています。NSData オブジェクトを取得しました。これを vcf ファイルに変換する必要があります。これをエアドロップで別の IOS デバイスに送信する必要があります。
NSData オブジェクトは正常に動作します。メールで vcc ファイルを送信できますが、エアドロップでは制限を超えました。ここのフォーラムと developer.apple.com で見つけたものはすべて試しました。しかし、何も機能しません。その理由は、問題の修正を開始する方法がわからないためだと思います。どうすればそれを実現できるか、誰にもわかりませんか?

ありがとう

4

1 に答える 1

1

これはおおよそあなたが探しているものだと思います:

NSString *contactName = nil; // name of person in vcard
NSData *vcfData = nil; // vcard data
NSURL *fileURL = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.vcf", contactName]]];
NSError *writeError;
if ([vcfData writeToURL:fileURL options:NSDataWritingAtomic error:&writeError]) {
    NSArray *activityItems = @[fileURL];
    UIActivityViewController *avc = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
    [self presentViewController:avc animated:YES completion:nil];
} else {
    // failed, handle errors
}

いくつかのアクティビティへの NSData の提供を引き続きサポートしたい場合は、UIActivityItemSourceプロトコルに準拠するいくつかのオブジェクトを作成し、それらのいくつかが適切な場合に nil を返すようにする必要があります (詳細については、このSOを参照してください)。Apple のAirDrop サンプル コードプロジェクトも役立つかもしれません。

于 2015-10-12T19:58:45.573 に答える