HarmonyOS Web组件RenderMode.SYNC_RENDER使用问题

在使用Web组件时,官方文档介绍“如果网页内容宽或长度超过8000px,请在Web组件创建的时候指定RenderMode.SYNC_RENDER模式”。

问题如下:

1、如何计算网页高度?

2、在不知道网页高度的情况下,可否直接使用 .layoutMode(WebLayoutMode.FIT_CONTENT) 和 renderMode: RenderMode.SYNC_RENDER ?

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

1、可以通过在js里面监听展示URL内容的高度,然后把高度值传输过来;放在ArkTS中的生命周期回调里面,然后在展示的页面加载完毕的回调里面然后设置webview的高度。比如要获取内容为html高度,可以在js里面监听html的高度,然后把高度值传输过来。

代码如下:

import web_webview from ‘@ohos.web.webview’;
@Entry
@Component
struct WebComponent {
  controller: web_webview.WebviewController = new web_webview.WebviewController();
  @State webResult: string = ‘’
  build() {
    Column() {
      Text(this.webResult).fontSize(20)
      Web({ src: $rawfile(‘index.html’), controller: this.controller })
        .javaScriptAccess(true)
        .aspectRatio(1.5)
        .onPageEnd(e => {
          this.controller.runJavaScript(‘watchWindowSize()’,(error,result)=>{
            this.webResult=result
            let pageHeight=this.controller.getPageHeight()+’’;
            pageHeight=this.webResult;
            console.info(“webResult=”+this.webResult);
            console.info(“pageHeight=”+pageHeight);
          }
          );
        })
    }
  }
}

注意一下单位转换 h5获取的高度是px 可以根据你自己喜欢的单位进行设置。这里使用了getPageHeight()方法,参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-webview-V5#getpageheight

2、可直接设置支持全量展开。api12支持web组件全量展开,需要设置renderMode:RenderMode.SYNC_RENDER。

参考文档: https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkweb/ts-basic-components-web.md#%E6%8E%A5%E5%8F%A3

参考如下:

Web({ src: $rawfile('index.html'), controller: this.controller, renderMode: RenderMode.SYNC_RENDER })
  .width(CommonConstants.WIDTH_OR_HEIGHT)
  .layoutMode(WebLayoutMode.FIT_CONTENT) 

目前只支持两种web布局模式,分别为Web布局跟随系统WebLayoutMode.NONE和Web基于页面大小的自适应网页布局WebLayoutMode.FIT_CONTENT。默认为WebLayoutMode.NONE模式。

参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-web-V5#layoutmode11

分享
微博
QQ
微信
回复
3天前
相关问题
OpenHarmony 使用WEB组件传值问题
3533浏览 • 1回复 待解决
HarmonyOS Web组件和List的嵌套使用问题
288浏览 • 1回复 待解决
HarmonyOS Web组件高度问题
353浏览 • 1回复 待解决
HarmonyOS Web组件缓存问题
28浏览 • 1回复 待解决
HarmonyOS web组件使用
452浏览 • 1回复 待解决
HarmonyOS web组件加载pdf问题
666浏览 • 1回复 待解决
HarmonyOS web组件移除增加问题
22浏览 • 1回复 待解决
HarmonyOS Web组件内容缩放问题
433浏览 • 1回复 待解决
web组件registerJavaScriptProxy的问题
1813浏览 • 0回复 待解决
HarmonyOS Web组件使用localStorage报错
649浏览 • 1回复 待解决
HarmonyOS Web组件头部参数问题
227浏览 • 1回复 待解决
HarmonyOS Web组件开发问题咨询
347浏览 • 1回复 待解决
HarmonyOS web组件自适应高度问题
1040浏览 • 1回复 待解决
HarmonyOS Web组件跨域请求问题
432浏览 • 1回复 待解决
HarmonyOS 使用Web组件加载页面示例
495浏览 • 1回复 待解决
HarmonyOS Web组件本地资源跨域问题
75浏览 • 1回复 待解决
web组件之cookie的使用
1295浏览 • 1回复 待解决
鸿蒙web组件再次加载问题
72浏览 • 0回复 待解决
HarmonyOS使用Web组件预览PDF和图片
775浏览 • 1回复 待解决