iOS小知识:HTML字符串与富文本互转

简介: iOS小知识:HTML字符串与富文本互转

引言

应用场景:使用原生视图UILabel显示服务端返回的带有HTML标签的内容

I 、 html转换为富文本

NSString *html = @"<p style='color:green'>博客<span style='color:#e83c36;'><a>https://kunnan.blog.csdn.net/<a/></span><br/>微信公众号:<span style='color:red'>iOS逆向</span><br/>“订阅”一次 ,享受终身服务的快乐。</br><span style='color:red'>专注《iOS应用逆向与安全》</span>(包括iOS基础)</p>";
    NSAttributedString *attStr = [[NSAttributedString alloc] initWithData:[html dataUsingEncoding:NSUnicodeStringEncoding] options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} documentAttributes:nil error:nil];

II、富文本转换为html

- (void)NSAttributedStringtohtmlWith:(NSAttributedString*)attStr{
    NSDictionary *dic = @{NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:@(NSUnicodeStringEncoding)};
    NSData *data = [attStr dataFromRange:NSMakeRange(0, attStr.length) documentAttributes:dic error:nil];
    NSString *str = [[NSString alloc] initWithData:data encoding:NSUnicodeStringEncoding];
    NSLog(@"NSAttributedStringtohtmlWith:%@",str);
    [self gotoAXWebViewControllerWithHtmlstr:str];
}

image.png

III、加载本地HTML文件

1、文章:https://kunnan.blog.csdn.net/article/details/90579369 2、原理:`使用[_webView loadHTMLString:html baseURL:baseURL]; 进行代码加载

NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
        [self loadHTMLString:_HTMLString baseURL:_baseURL];

`

  • 例子
#import <AXWebViewController/AXWebViewController.h>
- (void)gotoAXWebViewControllerWithHtmlstr:(NSString*)html{
    NSURL *baseURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
    AXWebViewController *webVC = [[AXWebViewController alloc] initWithHTMLString:html baseURL:baseURL];
    UINavigationController *tmp = [[UINavigationController alloc]initWithRootViewController:webVC];
    webVC.showsToolBar = NO;
    webVC.navigationController.navigationBar.translucent = NO;
    webVC.navigationController.navigationBar.tintColor = [UIColor colorWithRed:0.100f green:0.100f blue:0.100f alpha:0.800f];
    webVC.navigationController.navigationBar.barTintColor = [UIColor colorWithRed:0.996f green:0.867f blue:0.522f alpha:1.00f];
        //webVC.navigationType = AXWebViewControllerNavigationToolItem;
//    webVC.showsToolBar = YES;
    [self presentViewController:tmp animated:YES completion:^{
    } ];
}

see also

目录
相关文章
|
22天前
|
JavaScript 前端开发
用JavaScript正则表达式匹配对应字符串高亮显示,并过滤掉空格、<、>等HTML节点符号
用JavaScript正则表达式匹配对应字符串高亮显示,并过滤掉空格、<、>等HTML节点符号
|
22天前
|
移动开发
uni-app使用v-html输出富文本图片溢出解决
uni-app使用v-html输出富文本图片溢出解决
79 1
|
14天前
|
iOS开发
iOS中如何显示后台返回的带有html标签的富文本字符串
iOS中如何显示后台返回的带有html标签的富文本字符串
17 0
|
16天前
|
移动开发 Android开发 iOS开发
ios标准页面调用HTML5页面和HTML5调用ios的函数
ios标准页面调用HTML5页面和HTML5调用ios的函数
26 0
|
22天前
|
JavaScript 搜索推荐 UED
一种将 Vue 组件渲染为 HTML 字符串的技术
【5月更文挑战第8天】Vue 的服务器端渲染(SSR)技术在服务器上将组件渲染为 HTML,提升首屏加载速度和 SEO。优点包括更快的用户体验、更好的搜索引擎优化及减轻客户端负担。然而,SSR也带来服务器压力增大、开发复杂性和额外的构建配置需求。vue-server-renderer 包支持 Vue SSR,但是否采用取决于项目需求和资源。
17 1
|
22天前
|
Python
python html(文件/url/html字符串)转pdf
python html(文件/url/html字符串)转pdf
13 0
|
22天前
|
JSON 资源调度 小程序
一个强大的小程序富文本组件mp-html
一个强大的小程序富文本组件mp-html
58 0
|
22天前
|
前端开发 JavaScript 安全
react如何渲染包含html标签元素的字符串
react如何渲染包含html标签元素的字符串
74 0
|
22天前
|
安全 Java Android开发
iOS代码安全加固利器:深入探讨字符串和代码混淆器的作用
iOS代码安全加固利器:深入探讨字符串和代码混淆器的作用
41 0
|
自然语言处理 iOS开发
iOS小知识:本地化字符串指定参数顺序(应用于app内多语言切换)
iOS小知识:本地化字符串指定参数顺序(应用于app内多语言切换)
186 0
iOS小知识:本地化字符串指定参数顺序(应用于app内多语言切换)