在使用Web组件时,官方文档介绍“如果网页内容宽或长度超过8000px,请在Web组件创建的时候指定RenderMode.SYNC\_RENDER模式”。
问题如下:
1、如何计算网页高度?
2、在不知道网页高度的情况下,可否直接使用 .layoutMode(WebLayoutMode.FIT\_CONTENT) 和 renderMode: RenderMode.SYNC\_RENDER ?
在使用Web组件时,官方文档介绍“如果网页内容宽或长度超过8000px,请在Web组件创建的时候指定RenderMode.SYNC\_RENDER模式”。
问题如下:
1、如何计算网页高度?
2、在不知道网页高度的情况下,可否直接使用 .layoutMode(WebLayoutMode.FIT\_CONTENT) 和 renderMode: RenderMode.SYNC\_RENDER ?
1.3k 阅读
1 回答540 阅读✓ 已解决
518 阅读
1、可以通过在js里面监听展示URL内容的高度,然后把高度值传输过来;放在ArkTS中的生命周期回调里面,然后在展示的页面加载完毕的回调里面然后设置webview的高度。比如要获取内容为html高度,可以在js里面监听html的高度,然后把高度值传输过来。
代码如下:
注意一下单位转换 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布局模式,分别为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