Tôi muốn ứng dụng của mình sử dụng MFMailComposeViewController
để gửi email sao cho người nhận có thể nhấp vào số url
được nhúng để mở trang web tương ứng. MFMailComposeViewController
dường như không hỗ trợ điều này một cách rõ ràng. Bất kỳ ý tưởng?MFMailComposeViewController: làm cách nào để nhúng liên kết URL có thể nhấp vào nội dung thư email
MFMailComposeViewController: làm cách nào để nhúng liên kết URL có thể nhấp vào nội dung thư email
Trả lời
:) 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.
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
.
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?
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!
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
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:
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.
Bạn đã nhấp vào email đã nhận hoặc đang ở chế độ chỉnh sửa chưa? – AsifHabib