摆脱WebView!自研鸿蒙NEXT纯原生HTML富文本组件,开箱即用
做 HarmonyOS NEXT 开发的小伙伴,大概率都被 HTML 富文本渲染 坑过!开发资讯详情、帮助文档、技术笔记、用户协议等页面时,后端返回的标准HTML内容,在鸿蒙端始终无法完美落地,官方两套方案各有硬伤,要么卡顿臃肿,要么功能残缺,根本无法满足正式上线需求。
开源地址
OHPM:https://ohpm.openharmony.cn/#/cn/detail/htmlrichtext
GitHub:https://github.com/oldwounds2120/html-rich-text
适配版本:HarmonyOS NEXT API 12+
开源协议:Apache-2.0(完全免费、支持商用)
官方文档网站:https://www.htmlrichtext.com
当前版本:V1.0.2
工程规范:标准OHPM HAR库、91条全覆盖单元测试
当前版本:V1.0.1
工程规范:标准OHPM HAR库、53条全覆盖单元测试
一、鸿蒙富文本终极痛点!告别卡顿与样式翻车,原生解决方案来了
做 HarmonyOS NEXT 开发的小伙伴,大概率都被 HTML 富文本渲染 坑过!开发资讯详情、帮助文档、技术笔记、用户协议等页面时,后端返回的标准HTML内容,在鸿蒙端始终无法完美落地,官方两套方案各有硬伤,要么卡顿臃肿,要么功能残缺,根本无法满足正式上线需求。
市面上仅有的两种官方渲染方案,早已跟不上业务开发需求,也是无数鸿蒙开发者的共性痛点:
❌ Web 组件
体积臃肿、加载慢、滑动卡顿、原生交互割裂、无法和 App 主题样式统一,为了一段文章引入整个浏览器内核,性价比极低。
❌ 系统原生 RichText
样式完全锁死,无法自定义行高、字间距、段落间距;不支持图片全屏预览、手势缩放,代码块、合并表格、嵌套列表等复杂标签直接渲染失效,但凡复杂一点的文章内容,都会出现样式错乱、内容丢失问题,完全撑不起商业化项目。
为了彻底解决鸿蒙富文本渲染的行业痛点,我从零自研开发了 htmlrichtext 纯原生富文本组件,彻底抛弃WebView和系统原生RichText依赖,手写轻量化HTML解析器,全程基于ArkUI原生组件渲染。
零冗余、高性能、全能力开箱即用,完美适配所有资讯、文档类业务场景,不用重复造轮子、无需二次封装,一行代码即可实现企业级富文本渲染效果,是目前鸿蒙NEXT最实用的原生HTML富文本解决方案!
二、组件核心优势:为什么推荐你直接用它?
100% 纯原生渲染,性能拉满
不依赖任何 Web 内核,摒弃所有冗余能力,通过自研解析器将 HTML 标签精准映射为 Text、Span、Image、Flex、Grid 等标准 ArkUI 原生组件。渲染高效、滑动流畅、适配鸿蒙原生交互逻辑,和普通页面性能完全一致。
业务能力全覆盖,无需二次封装
这是本组件最大的亮点——聚焦真实业务场景,把所有高频刚需能力全部内置,开发者接入即可直接上线:
✅ 完整标签支持:h1~h6 标题、段落、加粗、斜体、删除线、引用、分割线
✅ 图文混排:图片自适应铺满、比例缩放、自动适配屏幕
✅ 完整列表能力:支持 ul/ol 嵌套列表,样式原生规整
✅ 专业表格渲染:支持 table 表格、单元格合并、表头样式、边框完整展示
✅ 技术文档专属:pre/code 代码块语法高亮 + 横向滚动
极致图片交互体验
彻底解决原生组件图片能力缺失的问题:
✅ 点击图片自动唤起全屏预览弹窗
✅ 支持左右滑动切换、双击缩放、手势缩放
✅ 支持 baseUrl 统一处理图片相对路径
✅ 内置图片加载失败回调,可自定义占位处理
全局统一样式配置,一键换肤
通过 RichTextConfig 集中管理所有样式,无需逐行写内联样式,全局文章风格统一管控:
可自定义:正文字号、行高、段间距、标题梯度字号、链接颜色、代码块背景、图片圆角等所有样式。
安全容错,企业级可用
✅ 自动补全未闭合标签、过滤多余闭合标签
✅ 自动跳过 script、style 危险标签内容
✅ 内置 javascript 伪协议拦截,规避 XSS 注入风险
✅ 完整 HTML 实体字符解析,兼容后端不规范返回数据
稳定可靠,有单测保障
组件核心解析、渲染树构建、代码高亮等纯逻辑层代码完全解耦,无ArkUI依赖,支持独立单元测试,目前已完成91条全覆盖单元测试,大幅提升解析容错性与渲染稳定性,可精准校验标签解析、样式继承、特殊字符适配、表格合并、异常容错等各类场景,彻底规避线上解析报错、样式错乱问题,企业级稳定性拉满。同时项目采用标准OHPM HAR工程结构,规范整洁、可直接打包发布,工程化程度极高,详细API与使用教程可查阅官方网站。
三、适配兼容与工程架构解析
✅ 精准版本适配
组件最低适配 HarmonyOS NEXT API 12+,完美适配新版ArkTS语法特性。同时预留API11兼容方案,仅需一行代码微调即可向下兼容旧版本工程,适配绝大多数鸿蒙项目开发场景。
✅ 分层架构设计(高内聚、低耦合)
项目采用逻辑层与UI层完全分离的架构设计,结构清晰、支持二次深度开发:
- 核心逻辑层:自研HTML解析器、渲染树构建器、数据模型、样式配置器、代码高亮工具,纯TS逻辑,无UI依赖,可独立单测、复用性极强
- UI组件层:主渲染组件、全屏图片预览弹窗,专注原生交互与页面渲染
- 配置层:统一RichTextConfig配置入口,全局样式一键统一管控
- 使用者无需关注工程构建配置,仅需引入组件即可使用;开发者可基于源码自由拓展自定义标签、专属样式与交互逻辑。
四、快速接入:两种方式,极简使用
方式一:OHPM 一键安装(推荐)
ohpm i htmlrichtext
或在 oh-package.json5 中手动引入依赖后执行安装。方式二:源码直接引入
将 htmlrichtext 完整目录复制到工程 ets 目录下,本地直接导入使用,无任何依赖、无网络限制。
五、完整使用示例(可直接复制运行)
import { HtmlRichText, RichTextConfig } from 'htmlrichtext';
import { common } from '@kit.AbilityKit';
@Entry
@Component
struct ArticlePage {
// 后端返回的HTML富文本字符串
@State html: string = `
<h2>鸿蒙原生富文本测试标题</h2>
<p>这是正文内容,支持<strong>加粗文字</strong>、<em>斜体文字</em>、<del>删除文字</del></p>
<blockquote>这是引用文本区块</blockquote>
<pre><code>const app = "鸿蒙富文本组件";</code></pre>
<ul>
<li>功能开箱即用</li>
<li>纯原生高性能渲染</li>
</ul>
`;
// 全局统一样式配置
private config: RichTextConfig = new RichTextConfig();
build() {
Scroll() {
Column() {
HtmlRichText({
html: this.html,
config: this.config,
baseUrl: 'https://cdn.example.com',
// 链接点击回调
onLinkClick: (url: string) => {
const context = getContext(this) as common.UIAbilityContext;
context.openLink(url);
},
// 图片点击回调
onImageClick: (index: number, url: string) => {
console.log('点击图片:', index, url);
},
// 图片加载失败回调
onImageLoadError: (url: string) => {
console.log('图片加载失败:', url);
}
})
}
.width('100%')
.padding(16)
}
}
}
六、支持能力一览
🏷️ 全覆盖HTML标签
标题、段落、文本修饰、超链接、图片、嵌套列表、表格、引用、代码块、分割线等业务常用标签全部支持。
🎨 内联CSS样式支持
支持字体颜色、字号、字重、行高、间距、对齐、圆角、背景色、宽高等常用内联样式解析渲染。
💡 内置专属能力
图片全屏预览缩放、代码语法高亮、表格合并渲染、URL安全拦截、HTML容错解析。
七、适用业务场景
- 资讯类 App 文章详情页
- 应用内置帮助中心、FAQ、用户协议
- 知识库、笔记、教程类应用
- 后端动态下发HTML内容的展示页面
- 技术文档、接口文档展示场景
八、开源共建
本项目基于 Apache-2.0 开源协议,免费开源、允许商用、无需授权。
目前持续迭代中,欢迎各位开发者:
🌟 GitHub 点 Star 支持作者更新迭代
🐛 发现 Bug、兼容问题可提 Issue
✨ 有新需求、功能优化欢迎提交 PR
项目官方地址
🌐 官网文档:https://www.htmlrichtext.com(最全API文档、更新日志、实战教程)
OHPM 仓库:https://ohpm.openharmony.cn/#/cn/detail/htmlrichtext
GitHub 仓库:https://github.com/oldwounds2120/html-rich-text
OHPM 仓库:https://ohpm.openharmony.cn/#/cn/detail/htmlrichtext
GitHub 仓库:https://github.com/oldwounds2120/html-rich-text
九、写在最后
在 HarmonyOS NEXT 原生开发中,HTML 富文本一直是高频且棘手的业务需求。原生方案要么性能拉胯、要么能力残缺,市面上适配完整业务场景的纯原生开源库少之又少。
htmlrichtext 主打「零封装开箱即用、企业级能力全覆盖」,专门解决资讯、文档、帮助中心类页面的富文本渲染难题,让开发者彻底告别 WebView 臃肿嵌套与系统富文本的样式翻车问题。
组件全程持续迭代,后续会持续优化渲染性能、拓展更多HTML标签、丰富自定义样式与交互能力。
💡 码字不易,开源更不易!如果这篇文章和组件对你开发有帮助,恳请点赞、收藏、关注一波!
🌟 GitHub 点亮 Star,持续跟进最新版本迭代
📚 订阅本专栏,后续持续更新鸿蒙原生组件封装、开源库实战、踩坑优化干货
原创文章,作者:ECHO陈文,如若转载,请注明出处:https://www.luweipai.cn/harmony/1786531678/