Skip to content

hp-richtext, 是一个适用于 HarmonyOS Next 的富文本解析组件。

License

Notifications You must be signed in to change notification settings

asasugar/HPRichText

Repository files navigation

hp-richtext 是一个适用于 Harmony 的富文本解析组件

ComponentV2 API升级,需要使用请升级v3最新版本(对V1版本向下兼容)

  • 参数变更 {richTextOption: {content: ''}, needScroll: true, onLinkPress: ()=>{}} 变更至 {richTextModel: {richTextOption: {content: ''}, needScroll: true, onLinkPress: ()=>{}}}

用法参考,Example可参照:V2用法示例

  import { HPRichTextV2, RichTextOptionModelV2 } from '@ohasasugar/hp-richtext';
  @Entry
  @Component
  struct Index {
    richTextModel: RichTextOptionModelV2 = new RichTextOptionModelV2();
    aboutToAppear() {
      this.richTextModel.richTextOption = {
        content: '我是 ComponentV2 的 HPRichText 组件',
        imageProp: {
          webp: true,
        }
      }
    }
    build() {
      Column() {
        HPRichTextV2({
          richTextModel: this.richTextModel
        })
      }
    }
  }

别忘了帮我点一个小星星鼓励一下🌟🌟~

如果需要直接运行该代码示例,需要

方式一:安装最新的DevEco Studio从 NEXT Developer Beta1;

方式二:老版本运行,切换到v1.0.8

  • 修改hvigor-config.json5文件的配置为当前IDE对应的版本,如IDE版本3.1:

     {
        "hvigorVersion": "2.4.2",
        "dependencies": {
          "@ohos/hvigor-ohos-plugin": "2.4.2"
        }
      }
  • 点击构建-清理项目/重新建构项目/鼠标选中library文件,构建library

OpenHarmony三方库中心仓链接(假如中心仓与tag版本不一致,则代表中心仓包正在审核中)

@ohasasugar/hp-richtext

更新日志

完整日志:changelog

最近更新:v3.0.4 (2024-11-01)

Bug Fixes

  • 🐛 修复html非法使用style script标签渲染问题 (#77) (e0a66b7)

Features

简介

原生存在 RichText 组件了,为什么还要花费时间做这个事情?

1. 支持的属性有限

只支持通用属性中width,height,size,layoutWeight四个属性。由于padding,margin,constraintSize属性使用时与通用属性描述不符,暂不支持。

2. 支持的标签有限

h1~h6、p、br、font、hr、image、div、i、u、行内style、style和script

3. Web组件消耗资源,重复使用会出现卡顿、滑动响应慢等现象

20240201102119

4. hp-richtext 组件是怎么解决这些问题?

  • 解析HTML,生成描述性的JSON
  • 递归遍历JSON结构,通过builder装饰器生成对应的鸿蒙基础组件、通过@Extend装饰器扩展组件样式生成对应的鸿蒙样式

基于这种实现的方式,可以支持更多的属性、标签,且遍历的时候只会生成基础组件,不会生成多个Web 组件而导致性能问题(待开发完成验证)

需要权限

如果img、video 引用网络资源需要

ohos.permission.INTERNET

下载安装

ohpm install @ohasasugar/hp-richtext

使用示例

import { HPRichText } from '@ohasasugar/hp-richtext';
import type { RichTextOption } from '@ohasasugar/hp-richtext';
@Entry
@Component
struct Index {
  imgUrl = 'data:image/jpeg;base64,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';
  @State richTextOption: RichTextOption = {
    content: `
      <h1 style="text-indent: 200px">h1标签</h1>
      <h2>h2标签</h2>
      <h3>h3标签</h3>
      <h4>h4标签</h4>
      <h5>h5标签</h5>
      <h6>h6标签</h6>
      <div>div标签</div>
      <p>p标签</p>
      <div>
        <font color="red" size="60px">font标签</font>
        <strong>strong标签</strong>
        <b>b标签</b>
        <i>i标签</i>
        <u>u标签</u>
        <s>s标签</s>
        <strike>strike标签</strike>
        <del>del标签</del>
        <big>big标签</big>
        <small>small标签</small>
        <a href="http://www.baidu.com">a标签</a>
        <input style="color:red" placeholder="请输入..." type="number" maxlength="2" value="我是input标签"/>
        <textarea rows="10" cols="30">
          我是一个文本框
        </textarea>
        <span>
        带换行符号或者空格符号的文本:
        【0乳糖,特添优质冷榨生椰浆】使用IIAC大赛金奖咖啡豆,现萃香醇Espresso,遇见鲜椰冷榨生椰浆,椰香浓郁,香甜清爽,带给你不一样的拿铁体验!\r\n\r\n主要原料:浓缩咖啡、冷冻椰浆/椰浆饮品、原味调味糖浆\r\n\r\n图片及包装仅供参考,请以实物为准。\r\n尽快享用风味更佳哦~
        </span>
      </div>
      <p style="margin: 10px;border: 5px solid #000;">带边框样式的</p>
      <p style="margin: 10px;border: 5px dashed #000;">带边框样式的</p>
      <h1 style="overflow: hidden;text-overflow:ellipsis;white-space: nowrap;">单行文本显示省略号单行文本显示省略号</h1>
      <h1 style="-webkit-line-clamp: 2;overflow: hidden;text-overflow:ellipsis;white-space: nowrap;">多行文本显示省略号多行文本显示省略号多行文本显示省略号</h1>
      <img style="width: 750px;height: 500px;" src="${this.imgUrl}"/>
      <video height="500px" loop muted autoplay src="xx" />
    `,
    imageProp: {
      webp: true,
    }
  };

  build() {
    Column() {
      HPRichText({
        richTextOption: $richTextOption,
        needScroll: true,
        onLinkPress: (e) => {
          return e;
        }
      })
    }
  }
}

增加 ObservedHPRichText 组件,支持动态生成 richTextOption 参数 (#58)

import { ObservedHPRichText, RichTextOptionModel } from '@ohasasugar/hp-richtext';


@Entry
@Component
struct Index {
  @State arr: RichTextOptionModel[] = []

  // 模拟请求接口数据
  aboutToAppear(): void {
    for (let i = 0; i < 4; i++) {
      let o = new RichTextOptionModel();
      o.content = `<span style="color: #fff">我是 ObservedHPRichText 组件${i}</span>`;
      this.arr.push(o)
    }
  }

  build() {
    Column() {
      List({ space: 10 }) {
        ForEach(this.arr, (item: RichTextOptionModel) => {
          ListItem() {
            ObservedHPRichText({
              observedRichTextOption: item,
              needScroll: true,
              onLinkPress: (e) => {
                console.log(JSON.stringify(e))
                return e;
              }
            })
              .width('100%')
              .height(100)
              .borderRadius(10)
              .backgroundColor(0x007DFF)
          }
        }, (item: number) => JSON.stringify(item))
      }
    }
    .padding(12)
    .height('100%')
    .backgroundColor(0xF1F3F5)
  }
}

richTextOption属性

名称 类型 必填 默认值 描述
content String 渲染内容
baseFontSize Number 16 基准字体大小,以 p 标签为基准
baseFontColor String #000000 基准字体色值
basePixelUnit 'px'/'vp'/'fp'/'lpx' vp 字符串px转化的像素单位
basePixelRatio Number 1 px转化其他像素单位的像素比=屏幕宽度/设计稿宽度
customHandler Function 见源码 自定义 parser 函数
imageProp Object 见下文 图片相关参数
// Good ✅
Button('改变数据').onClick(() => {
  this.richTextOption = {
    baseFontSize: 50,
    baseFontColor: '#ecd88d',
    content: '我是改变之后的数据,如通过ajax请求返回的数据'
  }
})
// Bad ❌
Button('改变数据').onClick(() => {
  this.richTextOption.baseFontSize = 50;
  this.richTextOption.content = '我是改变之后的数据,如通过ajax请求返回的数据';
})

自定义 parser 函数具体介绍

  • 回调参数为当前节点 node 对象及解析结果 results 对象,例如:

    const customHandler = {
      start(node:NodeInfo) {
        if(!node.attr) node.attr = {};
        node.attr.class = null;
        node.attr.style = null;
      },
      end: null,
      chars: null
    };
    
  • 自定义函数会在原解析函数处理之后执行

imageProp 对象具体属性

名称 类型 默认值 描述
objectFit Contain/Cover/Auto/Fill/ScaleDown/None Contain 图片裁剪、缩放的模式,详见鸿蒙开发文档
padding Number/String 0 图片内边距
webp Boolean false 图片webp替换

needScroll属性

名称 类型 必填 默认值 描述
needScroll Boolean false 富文本内容超过一屏幕是否使用Scroll组件包裹

onLinkPress属性

名称 类型 必填 默认值 描述
onLinkPress Function/Null null { text?: string; link?: string; eventFnName?: string }点击标签事件回调(除了a标签以外其他标签需要增加onClick属性,并且回调会返回事件名,需要使用方自己在鸿蒙代码中根据事件名来匹配事件处理)

注意点

  • text-overflow只对一级块级标签或者全都行内子标签生效,嵌套块级标签需要换行,即使用Text重新生成一个文本,导致最外层的Text设置的多行省略文本会被嵌套的块级标签分割开
  • 非文本标签,如: imginputtextarea 在组件中会当块级标签渲染,且由于鸿蒙 Text 组件渲染的时候不支持嵌套 inputtextarea 组件,所以表单标签推荐在跟块级标签同级或者只存在一层嵌套关系
  • ulol 渲染为带初始样式普通块级标签
  • subsup 渲染为小字号的文本
  • tableli外部style外部script 标签暂不支持,
  • 支持 行内style
  • 设置 background-colorborder-radius 这两个属性,尽量避免内部多层嵌套,否则样式可能不是预期
  • 块级标签嵌套块级标签且最外层设置 border 边框属性,样式不是预期(ps: 由于性能问题,不打算修复) 20240423161457

已导出的ts类型声明

  • RichTextOption
  • TextBuilderOptions
  • NodesBuilderOptions
  • FancySpanOptions
  • FancyTextOptions
  • FancyImageOptions
  • FancyVideoOptions
  • FancyTextInputOptions
  • FancyTextAreaOptions
  • PixelUnit
  • LinkPressParame
  • LinkPressMethod
  • Attribute
  • SimpleNode
  • NodeInfo
  • ImageProp
  • CustomHandler
  • HtmlParserResult
  • Attr
  • StyleObject
  • ArtStyleObject
  • AttrsMap
  • AttrEnums
  • HeadingStyle
  • SpecialStyles
  • Nullable

支持的标签列表

  • h1~h6
  • div
  • p
  • span
  • b/strong
  • big
  • small
  • br
  • s/strike/del
  • a
  • img
  • video
  • code
  • pre
  • tt/kbd/samp
  • i/em/var/address/cite
  • s
  • u
  • hide
  • ol/ul
  • input
  • textarea

效果展示

20240318172402

20240319094531

20240513154129

贡献者

About

hp-richtext, 是一个适用于 HarmonyOS Next 的富文本解析组件。

Resources

License

Stars

Watchers

Forks

Packages

No packages published