WKWebView 中的调整大小处理程序中的 window.innerWidth/Height 未更新

Ber*_*lue 5 safari ios wkwebview

我有一些全屏网页内容,当窗口使用调整大小事件更改大小时,我会更新这些内容。

window.onresize = function()
{
    var width = window.innerWidth;
    var height = window.innerHeight;
    ...
}
Run Code Online (Sandbox Code Playgroud)

这在 Safari 应用程序中工作正常,但在WKWebView. 当设备在 iPhone 和 iPad 上更改屏幕方向时,它会给出错误的窗口尺寸WKWebView

特别是对于 iPad,我在导航控制器中显示 Web 视图。当我切换到纵向模式时,我得到的是 (768x768) 尺寸,而不是 (768x960),这是正确的尺寸。

这个问题有解决方法吗?

sch*_*max 4

window.clientWidth在调整大小事件触发之前/似乎window.clientHeight没有更新。

我找到了该问题的两个解决方案:

  • 使用document.documentElement.clientWidth而不是window.innerWidth
  • 监听orientationchange事件而不是resize事件(window.clientWidth此时似乎已经更新了)