window.innerHeight在iOS 11中返回错误的值

时间:2018-06-04 23:45:13

标签: javascript ios cordova wkwebview

到目前为止,我有一个运行在最新版本的cordova(8)和cordova-ios(4.5.4)上的cordova iOS应用程序。我最近开始考虑更新应用程序以使用WKWebView而不是默认UIWebView,但我发现在iOS 11(在iPad mini上测试)中,webview有时会报告错误的innerHeight。

这是index.html中的相关代码:

<meta name="viewport" content="initial-scale=1, width=device-width, height=device-height, viewport-fit=cover">

<style type="text/css">
    html, body {
        height: 100%;
    }
</style>

这就是我尝试阅读该属性的方式(全部在deviceready处理程序之后):

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    var calcHeight = window.screen.height - window.innerHeight;
}

window.screen.height总是计算到1024,这很好,但window.innerHeight有时会返回1004(这是预期值),但有时候它会返回460.

任何想法可能会发生什么?

提前致谢