Вставьте vCard из UIPasteBoard в Почту - PullRequest
3 голосов
/ 02 февраля 2012

Я копирую vcard (входит в комплект) на общий картон следующим образом:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"AM" ofType:@"vcf"]; 
NSData *data = [NSData dataWithContentsOfFile:filePath];
[[UIPasteboard generalPasteboard] setData:data forPasteboardType:(NSString*)kUTTypeVCard];

Я бы хотел, чтобы пользователь мог вставить его в электронное письмо. Однако Mail не предлагает параметр «Вставить», если он был скопирован в монтажный картон. Я делаю что-то не так или Mail не распознает этот тип картона?

Ответы [ 2 ]

0 голосов
/ 06 февраля 2012

Все в вашем коде выглядит правильно, поэтому, если Mail не позволит вам вставить его, это означает, что Mail не поддерживает вставку этого типа.

Редактировать: попробуйте с NSDictionary:

UIPasteboard *gpBoard = [UIPasteboard generalPasteboard];

NSData *data = [NSData dataWithContentsOfFile:filePath];

NSDictionary *item = [NSDictionary dictionaryWithObjectsAndKeys:
                      data, (NSString *)kUTTypeVCard,
                      nil];

gpBoard.items = [NSArray arrayWithObjects:item, nil];
0 голосов
/ 03 февраля 2012

Вы можете просто добавить его прямо к сообщению, вот так

MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"AM ofType:@"vcf"]; 
NSData *data = [NSData dataWithContentsOfFile:filePath];
[mailViewController addAttachmentData:data mimeType:@"text/vcard" fileName:@"AM.vcf"];
mailViewController.mailComposeDelegate = self;
[self presentModalViewController:mailViewController animated:YES];
[mailViewController release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...