Swift 4 - UIActivityViewController 共享到 Outlook 主题和标题

use*_*331 4 ios uiactivityviewcontroller swift

我使用UIActivityViewController 到共享文本到Outlook,一切正常,除了两件事情,一个我不能设置一个主题线和两条我不能设置一个标题的,我分享,我的文字是HTML表,它是当前显示我的实现中的第一部分(见截图)虽然我想显示一个预览标题。

有没有办法设置标题和设置主题

这是我的代码:

let activityViewController = UIActivityViewController(activityItems : [htmlString], applicationActivities: nil)

activityViewController.popoverPresentationController?.barButtonItem = self.shareButton

self.present(activityViewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

我试图这样设置主题:

activityViewController.setValue("This is my subject", forKey: "subject")
Run Code Online (Sandbox Code Playgroud)

但它没有用

我究竟做错了什么?

这是我正在谈论的标题的屏幕截图:

在此处输入图片说明

但它没有用

den*_*lor 7

任何触发共享的视图控制器都应符合UIActivityItemSource协议以进行设置:预览标题电子邮件主题以及电子邮件内容

你可以试试自己这个例子,它会在点击按钮时触发分享:

class ViewController: UIViewController, UIActivityItemSource {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBAction func sharePressed(_ sender: Any) {
        let item = [self, "Preview Title"] as [Any]

        let activityViewController = UIActivityViewController(activityItems: item, applicationActivities: nil)

        self.present(activityViewController, animated: true, completion: nil)
    }

    func activityViewControllerPlaceholderItem(_ activityViewController: UIActivityViewController) -> Any {
        return ""
    }

    func activityViewController(_ activityViewController: UIActivityViewController, itemForActivityType activityType: UIActivity.ActivityType?) -> Any? {
        return "<html><body><p style=\"background-color: red;\">Email body message with red background</p></body></html>"
    }

    func activityViewController(_ activityViewController: UIActivityViewController, subjectForActivityType activityType: UIActivity.ActivityType?) -> String {
        return "Email Subject"
    }

}
Run Code Online (Sandbox Code Playgroud)

要获得此预期输出:

不同 iOS 版本(iOS 11、iOS 12..)中的 Outlook 和 Gmail 等应用程序的行为有所不同:有些应用程序采用正文的第一行并将其设置为主题。请务必针对您所针对的 iOS 版本以及您想要针对共享功能的应用程序进行测试,以使其正确运行。您还可以itemForActivityType在共享时为不同的应用程序设置多个目标逻辑。

  • 也许这是与 Outlook App 共享时特有的问题?我实际上没有尝试过,只是尝试使用 iOS 电子邮件应用程序。也许你可以看看你在这个 stackoverflow 帖子的评论中提到的确切问题:/sf/answers/3601600341/ 并且可能是同样的情况? (2认同)
  • 我认为你是对的......哦,人们可以输入自己的主题行。 (2认同)