【问题标题】:Mail with HTML contents / UIActivityViewController带有 HTML 内容的邮件 / UIActivityViewController
【发布时间】:2017-02-27 05:27:59
【问题描述】:

为了统一我从我的一个 iOS 应用程序共享信息的方式,我正在尝试使用 UIActivityViewController。到目前为止一切都很好,除了一个细节。我无法干净地处理带有 HTML 内容的邮件的情况。我读了几篇关于这个主题的帖子,但没有什么令人满意的。

问题来了,我如何干净地处理带有 HTML 内容的邮件的情况?

在这种情况下放弃使用 UIActivityViewController 并回到经典的 MFMailComposeViewController 会更好吗?

【问题讨论】:

    标签: html ios email swift3 uiactivityviewcontroller


    【解决方案1】:

    你可以试试下面的方法

    NSString *path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
    NSString* html = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
    
    NSArray* dataToShare = @[html];
    UIActivityViewController* activityViewController =[[UIActivityViewController alloc] initWithActivityItems:dataToShare applicationActivities:nil];
    activityViewController.excludedActivityTypes = @[UIActivityTypeAirDrop];
    UIWindow *keyWindow = [[[UIApplication sharedApplication] delegate] window];
    [keyWindow addSubview: self.view];
    [self presentViewController:activityViewController animated:YES completion:^{}];
    

    您还可以将 HTML 源代码写入本地文件,例如 my_mail_message.html,然后使用该文件构建一个 NSURL 对象,例如 [NSURL URLWithString:@"file://my_mail_message.html"],然后使用该 NSURL 对象作为您提供给initWithActivityItems:applicationActivitiesactivityItems 数组。希望对您有所帮助!

    【讨论】:

    • 这比只使用旧的 MFMailComposeViewController 复杂得多。所以这基本上意味着没有办法用 UIActivityViewController 干净地处理 HTML 邮件内容。
    • 你可以试试这个答案。它是从 2013 年开始的,但我刚刚在 Swift 中尝试过(2019 年 6 月)并且它有效。只需确保您的消息使用 ... stackoverflow.com/questions/19695877/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    • 2014-06-02
    相关资源
    最近更新 更多