解决思路供参考:1.前端js写一个函数在页面加载完毕之后获取html的高度。2.ArkTS调用h5函数的能力,调用该函数并接受到html的高度3.利用web组件的生命周期回调函数onpageend中设置接收到的h5侧传来的html的宽高,并进行设置达到自适应需要注意单位转换,h5获取的高度是px,ArkTS端的设置可以根据你自己喜欢的单位进行设置参考demo: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 console.info("pageheight="+this.webResult); } ); }) .height(parseInt(this.webResult)) } } }index.html文件:<script type="text/javascript"> function watchWindowSize(){ var h = document.body.clientHeight; return h; } </script>
解决思路供参考:
1.前端js写一个函数在页面加载完毕之后获取html的高度。
2.ArkTS调用h5函数的能力,调用该函数并接受到html的高度
3.利用web组件的生命周期回调函数onpageend中设置接收到的h5侧传来的html的宽高,并进行设置达到自适应
需要注意单位转换,h5获取的高度是px,ArkTS端的设置可以根据你自己喜欢的单位进行设置
参考demo:
index.html文件: