gpt4 book ai didi

javascript - WebView 返回错误的 window.innerHeight

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:08:29 25 4
gpt4 key购买 nike

我有一个使用 Android WebView 以及一些 JavaScript 的应用程序。当我的 WebViewClient 调用 onPageFinished() 时,我提醒我的 JavaScript 运行一个初始化方法。在我点击 onPageFinished() 之前,我的 JavaScript 已启用并加载。

在该 JavaScript 方法中,我使用了 window.innerWidth。但是,它返回的值总是错误的,而且总是相同的。无论我的方向如何,它都会报告内部宽度为 320,内部高度为 240。(纵向和横向的正确宽度值分别为 360 和 598。)我在其他任何地方访问 window.innerWidthwindow.innerHeight 在 JavaScript 中它给了我一个准确的数字。

更令人费解的是,如果我直接在 onPageFinished() 调用中使用

检查 WebView 的高度或宽度

int height = view.getHeight();

int width = view.getWidth();

然后它总是正确返回(尽管它返回准确的像素数,而不是 DIP)。这让我觉得 WebView 的所有内容都已完成加载,因此我的 JavaScript 应该没有任何问题。

关于正在发生的事情有什么想法吗?

提前致谢!

最佳答案

这是因为Javascript在WebView的View相关初始化之前执行。而Android WebView给JS返回一个320x240的默认值。一段时间后执行你的JS就可以了,像这样

function go() {
int height = view.getHeight();
int width = view.getWidth();
};
window.setTimeout(go, 300);

关于javascript - WebView 返回错误的 window.innerHeight,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12304489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com