RichText
富文本組件,解析并顯示HTML格式文本。
說明:
開發前請熟悉鴻蒙開發指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]點擊或者復制轉到。
子組件
不包含子組件。
接口
RichText(content:string)
參數:
參數名 | 參數類型 | 必填 | 參數描述 |
---|---|---|---|
content | string | 是 | 表示HTML格式的字符串。 |
事件
名稱 | 描述 |
---|---|
onStart(callback: () => void) | 加載網頁時觸發。 |
onComplete(callback: () => void) | 網頁加載結束時觸發。 |
屬性
只支持[通用屬性]中width,height,size,layoutWeight四個屬性。由于padding,margin,constraintSize屬性使用時與通用屬性描述不符,暫不支持。
支持標簽
名稱 | 描述 | 示例 |
---|---|---|
-- | 被用來定義HTML,定義重要等級最高的標題,定義重要等級最低的標題。 | 這是一個標題這是h2標題 |
定義段落。 | 這是一個段落 | |
插入一個簡單的換行符。 | 這是一個段落這是換行段落 | |
規定文本的字體、字體尺寸、字體顏色。在標簽中font size能夠設置的值只有1到7的數字,默認值是3,由于標簽在HTML 4.01中不建議使用,在XHTML1.0 Strict DTD中不支持,所以不建議使用此標簽,請使用CSS代替。CSS語法: | 這是一段紅色字體。 | |
定義HTML頁面中的主題變化(比如話題的轉移),并顯示為一條水平線。 | 這個一個段落這是一個段落 | |
用來定義圖片。 | ||
常用于組合塊級元素,以便通過CSS來對這些元素進行格式化。 | 這是一個在div元素中的標題。 | |
定義與文本中其余部分不同的部分,并把這部分文本呈現為斜體文本。 | 這是一個斜體 | |
定義與常規文本風格不同的文本,像拼寫錯誤的單詞或者漢語中的專有名詞,應盡量避免使用為文本加下劃線,用戶會把它混淆為一個超鏈接。 | 這是帶有下劃線的段落 | |
定義HTML文檔的樣式信息。 | h1{color:red;}p{color:blue;} | |
style | 屬性規定元素的行內樣式,寫在標簽內部,在使用的時候需用引號來進行區分,并以; 間隔樣式,style='width: 500px;height: 500px;border: 1px soild;margin: 0 auto;'。(Android不支持style標簽中的color屬性的十六進制類型) | 這是一個標題這是一個段落。 |
用于定義客戶端腳本,比如JavaScript。 | document.write("Hello World!")HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿 |
使用場景
RichText組件底層復用了Web組件來提供基礎能力,包括但不限于HTML頁面的解析、渲染等。但由于Web組件比較消耗資源,所以在一些重復使用RichText組件的場景下,比如在List下循環重復使用RichText時,會出現卡頓、滑動響應慢等現象。
RichText使用Web提供基礎能力,同樣遵循Web約束條件。常見典型場景如下:
移動設備的視口默認值大小為980px,默認值可以確保大部分網頁在移動設備下可以正常瀏覽。如果RichText組件寬度低于這個值,content內部的HTML則可能會生產一個可以滑動的頁面被RichText組件包裹。如果想替換默認值,可以在content中添加以下標簽:
< meta name="viewport" content="width=device-width" >
示例
示例效果請以真機運行為準,當前IDE預覽器不支持。
// xxx.ets
@Entry
@Component
struct RichTextExample {
@State data: string = '< h1 style="text-align: center;" >h1標題< /h1 >' +
'< h1 style="text-align: center;" >< i >h1斜體< /i >< /h1 >' +
'< h1 style="text-align: center;" >< u >h1下劃線< /u >< /h1 >' +
'< h2 style="text-align: center;" >h2標題< /h2 >' +
'< h3 style="text-align: center;" >h3標題< /h3 >' +
'< p style="text-align: center;" >p常規< /p >< hr/ >' +
'' +
'< p style="font-size: 35px;text-align: center;font-weight: bold; color: rgb(24,78,228)" >字體大小35px,行高45px< /p >' +
'< p style="background-color: #e5e5e5;line-height: 45px;font-size: 35px;text-indent: 2em;" >< /p >' +
'< p >這是一段文字這是一段文字這是一段文字這是一段文字這是一段文字這是一段文字這是一段文字這是一段文字這是一段文字< /p >';
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center,
justifyContent: FlexAlign.Center }) {
RichText(this.data)
.onStart(() = > {
console.info('RichText onStart');
})
.onComplete(() = > {
console.info('RichText onComplete');
})
.width(500)
.height(500)
.backgroundColor(0XBDDB69)
RichText('layoutWeight(1)')
.onStart(() = > {
console.info('RichText onStart');
})
.onComplete(() = > {
console.info('RichText onComplete');
})
.size({ width: '100%', height: 110 })
.backgroundColor(0X92D6CC)
RichText('layoutWeight(2)')
.onStart(() = > {
console.info('RichText onStart');
})
.onComplete(() = > {
console.info('RichText onComplete');
})
.size({ width: '100%', height: 110 })
.backgroundColor(0X92C48D)
}
}
}
-
HTML
+關注
關注
0文章
277瀏覽量
34578 -
組件
+關注
關注
1文章
505瀏覽量
17806 -
鴻蒙
+關注
關注
57文章
2321瀏覽量
42749
發布評論請先 登錄
相關推薦
評論