我不确定我是否理解您的问题,您可能是要附加 pdf 文档还是只想添加指向 pdf 文档的链接,所以我会回答这两个问题。这是我用来将 pdf 数据附加到电子邮件的代码
- (void)emailFile
{
if(![MFMailComposeViewController canSendMail]) {
UIAlertView *cantSend = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Device not configured to send email" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[cantSend show];
} else {
MFMailComposeViewController *mailView = [[MFMailComposeViewController alloc] init];
mailView.mailComposeDelegate = self;
[mailView setSubject:@"PDF Attached to email"];
// Adding an actual PDF document to the email.
[mailView addAttachmentData:(__bridge NSData *)myPDFData mimeType:@"pdf" fileName:@"AttachedPDFDocument"];
[mailView setMessageBody:[NSString stringWithFormat:@"Sending %@. This email maybe sent as junk mail",fileName] isHTML:NO];
[self presentModalViewController:mailView animated:YES];
}
}
请注意,我添加的是 pdf 数据而不是实际的 pdf,然后我将扩展名 (MimeType) 设置为 pdf,然后设置文件的名称,将附件添加到您正在构建的电子邮件中非常简单。
要将链接添加到电子邮件,就像
- (void)emailFile
{
if(![MFMailComposeViewController canSendMail]) {
UIAlertView *cantSend = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Device not configured to send email" delegate:self cancelButtonTitle:nil otherButtonTitles:@"OK", nil];
[cantSend show];
} else {
MFMailComposeViewController *mailView = [[MFMailComposeViewController alloc] init];
mailView.mailComposeDelegate = self;
[mailView setSubject:@"PDF Link added in HTML"];
// Adding a HTML Link to an email. Remembering to set the Message to allow HTML.
NSString *link = [NSString stringWithFormat:@"http://www.google.com"];
[mailView setMessageBody:[NSString stringWithFormat:@"<p><font size=\"2\" face=\"Helvetica\"><a href=%@></br>%@</br></a></br></font></p>",link,@"Google"] isHTML:YES];
[self presentModalViewController:mailView animated:YES];
}
}
请注意,您没有附加任何数据,您将其设置setMessage
为使用 HTML,而第一个示例不使用 HTML。现在,这将允许您NSString
在包含 html 元素的消息正文中设置一个。
编辑
myPDFData 是CFDataRef
我从网络服务下载的 PDF 的数据内容之一,然后用户可以通过电子邮件将其转发给自己。如果您正在使用,ARC
那么您需要在(__bridge NSData *)myPDFData
设置附件数据时添加网桥。
希望这可以帮助。