2012-02-07 2 views
3

Мне нужно изменить существующий проект. В этом проекте есть несколько (много) мест, где приложение отправляет электронное письмо с предустановленным текстом внутри него. Используемая функция:Ссылки внутри тела сообщения электронной почты

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:emailString]]; 

Очевидно, что открывается iOS Mail, готовая отправить сообщение. Теперь мне нужно включить ссылки в тело сообщений. Можно ли это сделать без переключения на MFMailComposeViewController во всех местах? Как?

ответ

0

Посмотрите на этот документ - https://developer.apple.com/library/ios/#featuredarticles/iPhoneURLScheme_Reference/Articles/MailLinks.html#//apple_ref/doc/uid/TP40007892-SW1

Короткий ответ, да, вы можете предварительно заполнить тело сообщения, добавив параметр body в URL (т.е. mailto:[email protected]?body=This%20goes%20to%20body). Обратите внимание, что строка должна быть правильно экранирована, что вы можете сделать легко с помощью NSString's stringByAddingPercentEscapesUsingEncoding:

Я предполагаю, что любой URL-адрес в теле, который выглядит как URL-адрес, будет преобразован в ссылку самим почтовым приложением - Не уверен в этом, проверьте это.

+0

Спасибо за ваш ответ. Действительно, я имею в виду, что мне удалось заполнить тело, и любой адрес, например, www.mysite.com, преобразуется в ссылку по почте. То, что мне нужно, - это ссылка, например «Посетите наш сайт». Используя MFMailComposeViewController, вы можете сделать это через html, я думаю. – user236739

+0

Да, это то, с чем вам приходится обращаться с HTML, если ответ помог, отметьте его как принятый. –

+0

Это было проще, чем я думал, на самом деле HTML, встроенный в emailString, просто сработал. Есть некоторая неправильная информация, размещенная вокруг того, что метод openURL не позволяет использовать html. В любом случае, спасибо. – user236739

4

очень просто. Каждый HTML тег должен добавляться, используйте переднюю косую черту перед кавычками в URL, начало и конец
Пример:

NSString *bodyText [email protected]"<html>"; 
    bodyText = [bodyText stringByAppendingString:@"<head>"]; 
    bodyText = [bodyText stringByAppendingString:@"</head>"];    
    bodyText = [bodyText stringByAppendingString:@"<body>"]; 
    bodyText = [bodyText stringByAppendingString:@"<a  href=\"http://www.devaski.com\">My blog"]; 
    bodyText = [bodyText stringByAppendingString:@"</a>"]; 
    [mailComposer setMessageBody:bodyText isHTML:YES]; 
Смежные вопросы