热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

iosoc调用html,iOS开发网络篇——OC加载HTML代码(示例代码)

html代码图1样式一:测试内容信息无错样式二:padding:0px4px0px0px;text-align:left;margin:0px0px

html代码

图1

样式一:"

\\测试内容信息无错

"

样式二:

padding: 0px 4px 0px 0px; text-align: left; margin: 0px 0px 10px;\\">你好

了的好莱坞去任何caef76094b36acaf0accebde76d98d1001e99ce7.jpg%5C%5C%22

图2

eb5220163a694f408835a804c623ac16.jpg

一、情景1:加载到UILabel上面(转换成富文本即可)

//1.将字符串转化为标准HTML字符串

NSString *str1 = [self htmlEntityDecode:htmlString];

//2.将HTML字符串转换为attributeString

NSAttributedString * attributeStr = [self attributedStringWithHTMLString:str1];

//3.使用label加载html字符串并将label添加到view上

self.label.attributedText = attributeStr;

[self.label setFrame:CGRectMake(100,100,200,300)];

[self.view addSubview:self.label];

//------html 转换成字符串

//将 < 等类似的字符转化为HTML中的“

- (NSString *)htmlEntityDecode:(NSString *)string

{

string &#61; [string stringByReplacingOccurrencesOfString:&#64;""" withString:&#64;"\\""];

string &#61; [string stringByReplacingOccurrencesOfString:&#64;"\&#39;" withString:&#64;"\&#39;"];

string &#61; [string stringByReplacingOccurrencesOfString:&#64;"

string &#61; [string stringByReplacingOccurrencesOfString:&#64;">" withString:&#64;">"];

string &#61; [string stringByReplacingOccurrencesOfString:&#64;"&" withString:&#64;"&"]; // Do this last so that, e.g. &#64;"

return string;

}

//------ 将html转换成富文本

//将HTML字符串转化为NSAttributedString富文本字符串

- (NSAttributedString *)attributedStringWithHTMLString:(NSString *)htmlString

{

NSDictionary *options &#61; &#64;{ NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType,

NSCharacterEncodingDocumentAttribute :&#64;(NSUTF8StringEncoding) };

NSData *data &#61; [htmlString dataUsingEncoding:NSUTF8StringEncoding];

return [[NSAttributedString alloc] initWithData:data options:options documentAttributes:nil error:nil];

}

//图2 中的样式2 可以会出现显示空白&#xff0c;可以通过去除html标签来处理

//去掉 HTML 字符串中的标签

- (NSString *)filterHTML:(NSString *)html

{  NSScanner * scanner &#61; [NSScanner scannerWithString:html];

NSString * text &#61; nil;

while([scanner isAtEnd]&#61;&#61;NO)

{

//找到标签的起始位置

[scanner scanUpToString:&#64;"

//找到标签的结束位置

[scanner scanUpToString:&#64;">" intoString:&text];

//替换字符

html &#61; [html stringByReplacingOccurrencesOfString:[NSString stringWithFormat:&#64;"%&#64;>",text] withString:&#64;""];

}

return html;

}

二、情景2&#xff1a;加载到UIWebView上面(替换html中部分的字符)

//1.将字符串转化为标准HTML字符串&#xff0c;(此处的字符串不是标准的标签的HTML字符串,将字符串转换成标准的HTML字符串&#xff0c;这样才可以进行HTML字符串的加载)

NSString *str1 &#61; [self htmlEntityDecode:htmlString];//调用情景1的方法

//2.UIWebView 加载HTML字符串

UIWebView * webView &#61; [[UIWebView alloc] initWithFrame:CGRectMake(20, 150, self.view.frame.size.width-20, 400)];

[webView loadHTMLString:str1 baseURL:nil];

[self.view addSubview:webView];

三、缓存html用RNCachingURLProtocol库。



推荐阅读
  • [echarts] 同指标对比柱状图相关的知识介绍及应用示例
    本文由编程笔记小编为大家整理,主要介绍了echarts同指标对比柱状图相关的知识,包括对比课程通过率最高的8个课程和最低的8个课程以及全校的平均通过率。文章提供了一个应用示例,展示了如何使用echarts制作同指标对比柱状图,并对代码进行了详细解释和说明。该示例可以帮助读者更好地理解和应用echarts。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • python3 logging
    python3logginghttps:docs.python.org3.5librarylogging.html,先3.5是因为我当前的python版本是3.5之所 ... [详细]
  • MVC中的自定义控件
    怎么样创建自定义控 ... [详细]
  • 动量|收益率_基于MT策略的实战分析
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了基于MT策略的实战分析相关的知识,希望对你有一定的参考价值。基于MT策略的实战分析 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 修复安装win10失败并提示“磁盘布局不受UEFI固件支持”的方法
    本文介绍了修复安装win10失败并提示“磁盘布局不受UEFI固件支持”的方法。首先解释了UEFI的概念和作用,然后提供了两种解决方法。第一种方法是在bios界面中将Boot Mode设置为Legacy Support,Boot Priority设置为Legacy First,并关闭UEFI。第二种方法是使用U盘启动盘进入PE系统,运行磁盘分区工具DiskGenius,将硬盘的分区表设置为gpt格式,并留出288MB的内存。最后,通过运行界面输入命令cmd来完成设置。 ... [详细]
  • 网址:https:vue.docschina.orgv2guideforms.html表单input绑定基础用法可以通过使用v-model指令,在 ... [详细]
  • 安卓端开源移动浏览器开源项目
    进入android开发以来,webview用的比较多,后来又看了一些基于webview的浏览器代码,慢慢的将积累的东西做成了一个安卓移动浏 ... [详细]
  • 资源:吊炸天!74款APP完整源码!android界面中点击输入框时弹出输入法如果输入框在底部会出现输入法遮挡输入内容的问题解决办法设置activity的windowsoftinpu ... [详细]
  • 01mui框架使用概述
    1MUI概述1.1MUI诞生背景?性能和体验的差距,一直是手机APP开发者放弃HTML5的首要原因。浏览器默认控件样式又少又丑,制作一 ... [详细]
author-avatar
风华绝代LL58
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有