【问题标题】:Send a link in an email using UIActivityViewController使用 UIActivityViewController 在电子邮件中发送链接
【发布时间】:2013-10-27 22:25:54
【问题描述】:

如何使用 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 在电子邮件中发送消息和可点击链接?

【问题讨论】:

  • 好点。对不起,我没有把问题说得更清楚。我已经用一个明确的问题编辑了这篇文章。

标签: ios objective-c email hyperlink social-networking


【解决方案1】:

这似乎在 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:在 NSString 中使用基本 html 来包装所需的电子邮件内容

【讨论】:

  • 太棒了,这对我来说非常棒。需要指出的是,当我使用这种方法时,活动项数组中的其他字符串被忽略了。我没有测试过其他对象。
  • 这些 HTML 标签仅适用于 mfmailcomposeviewcontroller,当您尝试在 twitter 和 facebook 上分享内容时,所有标签都会显示
【解决方案2】:

就我而言,只要从我需要分享的链接中检索到图像,我就不需要发布照片(就像您在 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]; 

我还注意到,如果您在这些对象上发布照片,它不会从链接中检索任何图像。

我希望这会有所帮助。

【讨论】:

  • 感谢您的回复。我一般尝试了上面的代码和您的建议,但链接仍然显示为纯文本。我正在尝试在电子邮件中放置一个可点击的链接。有什么想法吗?
猜你喜欢
  • 2011-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-02
  • 2016-04-08
  • 1970-01-01
  • 2018-06-02
  • 1970-01-01
相关资源
最近更新 更多