2012-02-07 131 views
3

我需要修改現有的項目。在這個項目中,有幾個(很多)應用程序發送一封電子郵件,其中包含預設文本。使用的功能是電子郵件正文內的鏈接

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

這明顯打開iOS郵件,準備發送消息。 現在我需要在消息正文中包含鏈接。是否有可能在所有這些地方切換到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的幫助下做到這一點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

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];