HarmonyOS鸿蒙Next中web相关高度获取问题

HarmonyOS鸿蒙Next中web相关高度获取问题 情况1:把web放在Column下面实时获取Web的内容高度并将获取到的值赋给Column的高度,这个时候内容中存在svg图片,点击svg图片,svg图片完全展示,Web的内容高度发生变化,怎么监听这一变化并将所获得的高度负给Column的高度。

情况2:使用web的layoutMode自适应高度,这个时候内容中存在svg图片,点击svg图片会出现白屏的情况 demo中已提供对印的效果。

3 回复

可以直接使用web的自适应高度,在Beta7版本没有出现白屏,可以升级之后试一下

更多关于HarmonyOS鸿蒙Next中web相关高度获取问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,获取Web相关高度可以通过使用WebView组件及其相关API来实现。WebView是鸿蒙系统中用于嵌入网页内容的组件,可以通过onPageFinished事件监听页面加载完成,然后通过evaluateJavascript方法执行JavaScript代码来获取页面高度。

具体步骤:

  1. XML布局文件中定义WebView组件。
  2. JavaJS代码中初始化WebView并设置WebViewClient
  3. onPageFinished事件中,使用evaluateJavascript方法执行JavaScript代码"document.body.scrollHeight"来获取页面高度。
  4. 将获取到的高度值通过回调函数返回,并在应用中进行处理。

示例代码:

WebView webView = (WebView) findComponentById(ResourceTable.Id_webview);
webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        view.evaluateJavascript("document.body.scrollHeight", new ValueCallback<String>() {
            @Override
            public void onReceiveValue(String value) {
                int height = Integer.parseInt(value);
                // 处理高度值
            }
        });
    }
});
webView.load("https://example.com");

通过上述方法,可以在HarmonyOS鸿蒙Next中准确获取Web页面的高度。

在HarmonyOS鸿蒙Next中,获取Web相关高度可以通过WebView组件的getContentHeight()方法实现。该方法返回WebView中当前网页内容的高度,单位是像素。需要注意的是,此方法应在网页加载完成后调用,以确保获取到准确的高度。此外,还可以使用getScale()方法获取当前网页的缩放比例,结合高度数据进行更精确的布局调整。

回到顶部