HarmonyOS webview加载本地html问题

问题1:webview加载本地html时,<html><body style="margin: 0;"><p style='color: rgba(188, 53, 41, 1)'>一行</p></body></html>可以正常加载出来,<html><body style="margin: 0;"><p style='color: #BC3529'>一行</p></body></html> 不能正常加载。两个字符串的唯一区别是:‘color: rgba(188, 53, 41, 1)’和’color: #BC3529’

问题2: Web根据内容自适应时,即:layoutMode(WebLayoutMode.FIT_CONTENT)需要作为Scroll的子控件里才能生效,直接作为Column的子控件无法正常展示,这是设计如此吗?

代码如下:

@Entry 
@Component 
struct PushIndex { 
  controller: web_webview.WebviewController = new web_webview.WebviewController(); 
 
  text = `<html><body style="margin: 0;"><p style='color: #BC3529'>一行</p></body></html>` 
 
  build() { 
    Column() { 
      Scroll(){ 
        Web({ src: '', controller: this.controller }) 
          .width('100%') 
          .layoutMode(WebLayoutMode.FIT_CONTENT) 
          .onControllerAttached(()=>{ 
            this.controller.loadData(this.text,"text/html","UTF-8") 
          }) 
      } 
    } 
    .height('100%') 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
HarmonyOS
2024-11-06 11:51:29
947浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

​1、loaddata使用不同的参数会有不同的效果,如果参数不对可能会造成白屏现象。如果html中存在非法字符,例如css中的color:"#333",有"#“的时候会加载不了,需要使用文档中提供的加载本地资源的方法,后面两个参数要复制空格” “,” "。具体实现可参考loadData:​https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-webview-V5#loaddata

2、Scroll,可滚动的容器组件,当子组件的布局尺寸超过父组件的尺寸时,内容可以滚动。​https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-container-scroll-V5​。建议将内容比较长的页面放在scroll中。​

分享
微博
QQ
微信
回复
2024-11-06 16:10:16


相关问题
HarmonyOS webview如何加载沙箱html
1272浏览 • 1回复 待解决
HarmonyOS webview组件如何加载html代码?
1173浏览 • 1回复 待解决
HarmonyOS 本地html传参问题
1446浏览 • 1回复 待解决
HarmonyOS 如何加载本地沙盒中的html
1095浏览 • 1回复 待解决
如何使用Web组件加载本地html文件?
1751浏览 • 1回复 待解决
HarmonyOS webview加载html string一直闪退
841浏览 • 1回复 待解决
HarmonyOS webview加载数据问题
834浏览 • 1回复 待解决
HarmonyOS Webview load本地资源的问题
505浏览 • 1回复 待解决