当我将包含 HTML 内容的字符串作为数组元素传递给 UIActivityViewController initWithActivityItems
方法时,它不会在选定的“共享” Controller 中将其显示为 HTML,而是显示 HTML 源 (即标记而不是解释它)。
虽然我能理解为什么它会为不支持 html 内容的共享目标执行此操作,但它也不会为诸如电子邮件之类的内容解释它,而后者支持(以前这将通过设置
属性设置为 MFMailComposeController
上的 isHTMLYES
。
我应该浪费时间创建一个 UIActivityItemProvider
来返回基于“事件类型”的自定义内容,还是真的没有办法获取 UIActivityViewController
提供的邮件 Controller > 将内容解释为 HTML?
最佳答案
在我的测试中,如果字符串以“
”开头并以“”结尾,那么它将被视为 HTML。如果您希望使用非 HTML 感知的共享服务获得良好的结果,您需要使用一个实现了 UIActivityItemSource 的对象。协议(protocol)并在来自 -activityViewControllerPlaceholderItem:
时返回 HTML 字符串来自 -activityViewController:itemForActivityType:
如果事件是 UIActivityTypeMail
和 nil
否则。
一秒UIActivityItemSource从 -activityViewControllerPlaceholderItem:
返回合适的非 HTML 字符串来自 -activityViewController:itemForActivityType:
如果事件不是 UIActivityTypeMail
(和 nil
如果是的话)是剩下的难题。
我建议不要让一个对象做两个工作,因为 UIActivity
引擎有权根据占位符项是否显示为 HTML 做出不同的决定。
关于html - 带有 HTML 的 UIActivityViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12658248/