HarmonyOS 鸿蒙Next webview原生获取高度与网页本身高度不一致
HarmonyOS 鸿蒙Next webview原生获取高度与网页本身高度不一致
componentUtils.getRectangleById(“webview”).size.height 获取的web控件高度为 2454px,inspector里看高度是正确的,但是网页里面的内容html看2000px的高度就占满了,在做弹自定义键盘时滚动页面防止被遮罩的需求时,计算不准
2 回复
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);
}
);
})
}
}
}
针对HarmonyOS鸿蒙Next webview原生获取高度与网页本身高度不一致的问题,这通常可能由以下原因引起:
- 布局差异:不同设备或屏幕尺寸下,页面布局可能会有所不同,导致获取的高度值有差异。请确保页面布局在不同设备上保持一致。
- 动态内容:如果页面内容在加载后发生变化(如异步加载数据),初次获取的高度可能不准确。建议在内容完全加载后再获取高度。
- CSS样式影响:某些CSS属性(如padding、margin、box-sizing等)可能影响元素的实际高度计算。请检查并调整相关样式。
- 系统环境:不同版本的鸿蒙系统可能存在差异,影响webview组件的行为。确保测试环境与实际运行环境一致。
可以尝试上述方法排查问题,同时确保鸿蒙系统和webview组件都更新到最新版本,以获取最佳兼容性和性能。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html 。