电子邮件正文内的链接

问题描述:

我需要修改现有的项目。在这个项目中,有几个(很多)应用程序发送一封电子邮件,其中包含预设文本。使用的功能是电子邮件正文内的链接

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

这明显打开iOS邮件,准备发送消息。 现在我需要在消息正文中包含链接。是否有可能在所有这些地方切换到MFMailComposeViewController?怎么样?

看一看这个文件 - 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的帮助下做到这一点stringByAddingPercentEscapesUsingEncoding:

我假设正文中的任何URL看起来像一个URL将通过邮件应用程序本身转换为链接 - 不确定,测试一下。

+0

感谢您的答复。事实上的确如此,我的意思是我设法将人体预先填充,并且诸如www.mysite.com之类的任何地址都通过Mail转换为链接。我需要实现的是有一个链接,例如“访问我们的网站”。使用MFMailComposeViewController,你可以通过html来做到这一点。 – user236739 2012-02-07 17:23:28

+0

是的,这是你必须用HTML处理的东西,如果答案有帮助,将其标记为已接受。 – 2012-02-07 23:01:49

+0

这比我想象的要容易得多,实际上嵌入到emailString中的HTML只是起作用。周围发布了一些错误的信息,指出openURL方式不允许使用html。不管怎样,谢谢你。 – user236739 2012-02-08 09:38:44

这很简单。 每个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];