HarmonyOS Web通过loadData加载html不显示内容

场景:文章详情展示,html模板是在rawfile中,里面的具体内容是从文章接口中获取

结果:html中带了color:#FC6626这种颜色样式,就显示不出来里面的文字

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Excelsior_abit

文档说明:若html中的富文本中带有注入#等特殊字符,建议使用带有两个空格的loadData函数,将baseUrl和historyUrl置为空。

因为#是特殊字符,需要转义特殊处理,请按照以下代码进行加载

示例参考如下:

import web_webview from '@ohos.web.webview';
import business_error from '@ohos.base';
@Entry
@Component
struct WebPage {
  controller: web_webview.WebviewController = new web_webview.WebviewController();
  htmlStr = `<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<meta name="aplus-terminal" content="1">
<meta name="format-detection" content="telephone=no,email=no,adress=no">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no">
<meta name="aplus-touch" content="1">
</head>
<body>
<div class="container">
<span style="color:#FC6626;font-size:16px;">火得让人猝不及防。哪哪都是ChatGPT。</span>
</div>
</body>
</html>`

  //

  build() {
    Column() {
      Button('loadData')
        .onClick(() => {
          try {
            this.controller.loadData(this.htmlStr,"text/html", "UTF-8", " ", " ")
          } catch (error) {
            let e: business_error.BusinessError = error as business_error.BusinessError;
            console.error(`ErrorCode: ${e.code}, Message: ${e.message}`);
          }
        })
      Web({ src: '', controller: this.controller })
    }
  }
}
分享
微博
QQ
微信
回复
1天前
相关问题
Web如何使用loadData加载复杂Html字符串
2374浏览 • 1回复 待解决
HarmonyOS web通过loadData加载h5标签
270浏览 • 1回复 待解决
HarmonyOS web加载页面图片不显示
527浏览 • 1回复 待解决
HarmonyOS Web组件加载片段时候不显示
240浏览 • 1回复 待解决
预览器上WEB组件无法显示HTML内容
2593浏览 • 1回复 待解决
HarmonyOS webloadData不显示内容
21浏览 • 1回复 待解决
HarmonyOS 输入框不显示内容
90浏览 • 1回复 待解决
HarmonyOS web组件alert不显示
656浏览 • 1回复 待解决
HarmonyOS 网络图片加载不显示
133浏览 • 1回复 待解决
HarmonyOS Web如何搜索html界面的内容
345浏览 • 1回复 待解决
HarmonyOS Web组件加载html文件异常
542浏览 • 1回复 待解决
webview 如何显示纯文本html内容
2074浏览 • 1回复 待解决
HarmonyOS Web加载HTML格式的文本失败
68浏览 • 1回复 待解决