Trả lời

16

:) Vâng, bạn có thể làm điều này:

MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init]; 
composer.mailComposeDelegate = self; 
[composer setSubject:subject]; 
[composer setMessageBody:message isHTML:YES];      

nơi nhắn chỉ là một NSString với nội dung HTML. Bên trong bạn có thể thêm tất cả các HTML bạn muốn.

4

Sử dụng setMessageBody:isHTML: và chuyển một liên kết HTML thích hợp trong nội dung (<a href="your_url">your link text</a>) và chuyển YES đến thông số isHTML.

4

bạn đã thử mã của bạn đề xuất của bạn? Tôi đã thử nó trước khi vào trang web này, và xin lỗi để nói, nó không hoạt động chút nào. Liên kết xuất hiện thực sự màu xanh lam, HTML được đọc dưới dạng html, nhưng không thể liên kết. Khi tôi nhấp vào liên kết, tôi có thể chỉnh sửa nó ....

Có đề xuất nào tốt hơn không?

+0

Bạn đã nhấp vào email đã nhận hoặc đang ở chế độ chỉnh sửa chưa? – AsifHabib

26

Tôi đã xóa câu trả lời trước đó vì câu trả lời sai và không liên quan. Sau nhiều tóc kéo tôi cuối cùng tìm ra những gì đang xảy ra trong trường hợp của tôi và có lẽ những gì đang xảy ra trong câu hỏi này.

Khi bạn soạn nội dung HTML cho MFMailComposeViewController, bạn phải đặt ngắt dòng trong HTML. Nếu bất kỳ dòng có chiều dài> 76 ký tự, cơ thể sẽ được hiểu như sau:

Content-Type: text/html; charset=UTF-8 
Content-Transfer-Encoding: quoted-printable 

Nếu bạn đặt ngắt dòng vào, Content-Transfer-Encoding: quoted-printable sẽ không xảy ra và mọi thứ hoạt động như mong đợi. Giả sử bạn có HTML thích hợp.

Như một ví dụ, xây dựng cơ thể như sau:

NSMutableString *body = [NSMutableString string]; 
// add HTML before the link here with line breaks (\n) 
[body appendString:@"<h1>Hello User!</h1>\n"]; 
[body appendString:@"<a href=\"http://www.mysite.com/path/to/link\">Click Me!</a>\n"]; 
[body appendString:@"<div>Thanks much!</div>\n"]; 

Cheers!

+1

Tuyệt vời! tốt để biết về các ngắt dòng !, tiết kiệm cho tôi một số người đàn ông cổ vũ thời gian – MaKo

7

Tôi có cùng một vấn đề.

Liên kết của tôi là HTML, tôi có thể thấy 'màu xanh' nhưng nếu tôi nhấp vào, không mở safari di động. Được phép tôi chỉnh sửa văn bản.

Trong một lớp học tôi có điều này:

-(id) init{ 
    self = [super init]; 
    if (self) { 
      if ([MFMailComposeViewController canSendMail]) { 
       self.mailComposeDelegate = self; 
       [self setSubject: @"Subject"]; 
       [self setMessageBody: @"<h2>Body</h2><a href='http://www.google.com'>link example</a>" isHTML: YES]; 
      } 
      else { 
       UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"No Mail Accounts" 
                   message:@"You don't have a Mail account configured, please configure to send email." 
                   delegate:nil 
                 cancelButtonTitle:@"OK" 
                 otherButtonTitles: nil]; 
       [alert show]; 
      } 
    } 
    return self; 
} 

-(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{ 
    [controller dismissModalViewControllerAnimated: YES]; 
} 

Ở đây bạn có thể thấy iPad Screen shot: iPad Screen shot

Nếu tôi gửi, và sau đó tôi đi đến "Sent" Mailbox các công trình liên kết, vì vậy tôi nghĩ vấn đề là sự kiện mở liên kết.

Cảm ơn.

+0

Bạn đã thực hiện với nhấp chuột? có bạn chuyển hướng trên liên kết nếu có thì xin vui lòng gửi ở đây @Oceanicsix Cảm ơn – Maul

+0

Hi, nó đã được hơn một năm trước đây, nếu tôi thành thật bây giờ tôi không thể nhớ làm thế nào tôi đã hoàn thành vấn đề này. Xin lỗi và may mắn! – Mikel