ios - 打开文本集上的链接到 UILabel 作为属性字符串。从 json 响应中读取属性字符串
问题描述
我正在我的 tableview 单元格中阅读这个 json 响应。我已将其设置为 UILabel 并设法将其显示为我的标签的属性刺痛。我的观点是将标签内的文本显示为链接,但点击链接不起作用。我想要的是点击这些链接打开浏览器。
{"Disclaimer":"I have read & accept the <a href=\"https:\/\/staging.rentalcover.com\/pds\/W80P-J8ZP-INS\" target=\"_blank\">Policy Terms<\/a>. I have read & accept the <a href=\"https:\/\/staging.rentalcover.com\/pds\/W80P-J8ZP-INS\">Policy Terms<\/a>. This policy is issued by RentalCover.com, AFSL No.490058 and underwritten by Assetinsure Pty Ltd."}
下面是我的代码
var htmlResponse:String = obj.Disclaimer ?? ""
let myText = htmlResponse
lbl_Disclaimer.attributedText = self.stringFromHtml(string: myText)
lbl_Disclaimer.font = UIFont(name: "Poppins-Regular", size: 13)
// MARK:- HTML TO STRING
func stringFromHtml(string: String) -> NSAttributedString? {
do {
let data = string.data(using: String.Encoding.utf8, allowLossyConversion: true)
if let d = data {
let str = try NSAttributedString(data: d,
options: [NSAttributedString.DocumentReadingOptionKey.documentType: NSAttributedString.DocumentType.html],
documentAttributes: nil)
return str
}
} catch {
}
return nil
}
我在 json 响应中获取文本“政策条款”的链接,并希望它可以点击以在浏览器中打开链接。
谢谢
解决方案
使用 UIWebView 来实现这一点。在 UIlable 上,您可以分配 AttributedText,但无法确定从文本中点击了哪个特定单词。所以,放置一个 UIWebView 并调用loadHTMLString("<HTML>some string </HTML>")
方法。实现委托方法StartLoadRequest
。
请使用以下代码:-
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebView.NavigationType) -> Bool {
guard let url = request.url else{
return false
}
if "\(url)".contains("http"){
UIApplication.shared.openURL(request.url!)
}
return false
}
推荐阅读
- c - 嵌入式 C,瑞萨电子 RL78,数据传输
- json - 在 Postman 中将 org.joda.time.DateTime 可视化为字符串
- javascript - 如何在模块中使用变量(登录系统)
- android - 在 RecyclerView 上使用 Glide 缓慢加载图像
- ajax - 十月CMS | 在控制器中,在 preview.htm 上创建编辑按钮,然后链接到具有相同 ID 的 update.htm
- python - 无序集作为列 / Python 的 freezeset 对象
- azure - 如何在 Azure AD 重定向 URI 中添加带有参数的回复 URI?
- c# - 为每个 ListBox 项实例化一个新的 ValueConverter 实例
- javascript - 使用 JavaScript/jQuery 从外部加载 Bootstrap 4 模式的内容
- c# - 编译到 android 时脚本似乎无法正常工作