使用UIActivityViewController在电子邮件中发送链接

8

我该如何使用UIActivityViewController发送带有快速消息和链接的电子邮件?我尝试使用NSURL:

NSURL *url = [NSURL URLWithString:@"http://google.com/"];

还有一个NSString:

// String with Hyperlink syntax
NSString *stringURLHyperlink = @"<a href=\"http://google.com/">Google</a>";

// Plain text link out of desperation.
NSString *stringURLPlain = @"http://google.com/"; 

我没有使用自定义的UIActivity。NSString/NSURL作为activityItems被发送。

NSArray *activityItems = @[link];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];

感谢大家。

编辑 1:

抱歉,我应该更清楚地表达我的问题。如何使用UIActivityViewController在电子邮件中发送消息和可点击的链接?


好的观点。很抱歉我没有把问题表述得更清楚。我已经编辑了帖子并提出了明确的问题。 - Chris
2个回答

14

这在iOS 7中似乎运行良好:

[[UIActivityViewController alloc] initWithActivityItems:@[@"<html><body><b>This is a bold string</b><br\\>Check out this amazing site: <a href='http://apple.com'>Apple</a></body></html>"] applicationActivities:nil];

如果您共享符合UIActivityItemSource协议的对象,则还可以指定电子邮件主题内容!

tl;dr:使用基本的HTML将所需的电子邮件内容包装在NSString中


1
太棒了,这对我非常有效。需要提到的是,当我使用这种方法时,活动项数组中的其他字符串被忽略了。我还没有测试其他对象。 - Chris
2
这些 HTML 标签仅在使用 MFMailComposeViewController 时有效,当您尝试在 Twitter 和 Facebook 上共享内容时,所有标签都将被显示。 - nivritgupta

3
在我的情况下,只要从我需要分享的链接中检索到图像(就像当您在Facebook上发布链接并自动从该链接获取图片,并且图片成为链接时一样),我就不需要发布照片。 为了实现这一点,我发现如果仅发布URL,则不起作用。 您必须发布一些初始文本,然后是URL,而您可以通过将对象按此顺序放置在activityItems数组中来做到这一点。
这是我的工作代码:
NSArray * activityItems = @[[NSString stringWithFormat:@"Some initial text."], [NSURL URLWithString:@"http://www.google.com"]];
NSArray * applicationActivities = nil;
NSArray * excludeActivities = @[UIActivityTypeAssignToContact, UIActivityTypeCopyToPasteboard, UIActivityTypePostToWeibo, UIActivityTypePrint, UIActivityTypeMessage];

UIActivityViewController * activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];
activityController.excludedActivityTypes = excludeActivities;

[self presentViewController:activityController animated:YES completion:nil]; 

我还注意到,如果您在这些对象中上传一张照片,它将无法从链接中检索任何图像。
希望这能帮到您。

1
谢谢您的回复。我尝试了上面的代码和您的建议,但链接仍然显示为纯文本。我正在尝试在电子邮件中放置可点击的链接。有什么想法吗? - Chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接