【问题标题】:UIActivityViewController sharing via SMS not accepting NSAttributedStringUIActivityViewController 通过 SMS 共享不接受 NSAttributedString
【发布时间】:2018-03-15 14:19:00
【问题描述】:

尝试使用UIActivityViewController通过短信分享NSAttributedString字符串(包含嵌入式链接):

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

present(activityViewController, animated: true, completion: nil)

linkToShare 的类型为 NSMutableAttributedString

不幸的是,文本是共享的,但没有嵌入链接(链接的文字没有突出显示)。 通过 Mail 活动共享时,文本会按预期显示(文字链接突出显示并且链接正常工作)。

SMS 活动是否适用于属性字符串或者我在这里遗漏了什么?

【问题讨论】:

    标签: ios swift uiactivityviewcontroller


    【解决方案1】:

    SMS 活动确实与NSAttributedString 一起工作,因为它可以编译并且不会崩溃。但是对于 Mail 活动,必须将属性字符串转换为适合最终用于传输消息的协议的格式。

    对于 Mail 活动,可以将属性字符串转换为 html,从而保持字符串的格式。

    对于SMS,纯文本是唯一的可能,因此您设置的属性会被忽略。

    也就是说,某些 SMS 客户端会像 iOS 上的 Message 应用程序一样自动检测链接。最后,SMS 消息的格式更多地取决于接收客户端而不是发送者。

    【讨论】:

    • 在我的消息中仅针对 iOS 用户。原生消息应用程序不支持属性字符串(我猜它使用 UITextView 来显示文本)而它支持其他类型的数据似乎很奇怪。所以据我了解,我应该按原样发送链接(与嵌入式链接相反)对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多