Я пытаюсь визуализировать большую строку HTML, содержащую гиперссылки, в UITextView, используя NSAttributedString. Все работает нормально, кроме гиперссылок, они на самом деле не открывают ссылку.
Например, вот примерная версия моей HTML-строки:
let htmlString = "<html><p>If you would like to contact someone, you can email
them at <a class=rvts10 href=\"mailto:some@one.com\">some@one.com</a></p></html>"
У меня есть функция с именем convertHTML()
, которая преобразует строки в NSAttributedString с опциями типа документа html, которые я использую для присвоения атрибутному тексту UITextView:
textView.attributedText = htmlString.convertHTML()
TextField selectable
, но не editable
. Когда страница загружена, вы можете видеть стиль гиперссылки (синий текст) и все остальное, но вы не можете нажать на ссылку и открыть почтовое приложение.
Я предполагаю, что мне нужно изменить «mailto: ...» на что-то еще, что распознает iOS, но я просто не знаю, что нужно сделать, чтобы эта ссылка была доступной.
Это мой метод HTML:
func convertHtml() -> NSAttributedString{
guard let data = data(using: .utf8) else { return NSAttributedString() }
do{
return try NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding: String.Encoding.utf8.rawValue], documentAttributes: nil)
}catch{
return NSAttributedString()
}
}