2

我刚刚开始在我的 Cordova 应用程序中研究对分屏多任务处理的支持。到目前为止,该应用程序在模拟器中的 iPad 上显示和调整大小都很好,但是当我单击编辑字段并显示软件键盘时,100% 宽度的值开始返回整个屏幕,而不是给出的窗口。

初始显示(右侧的应用程序)

初始显示——到目前为止,一切都很好……

键盘显示,宽度现在错误

没有。该应用程序现在显示在其窗口外。

页面 HTML:

<html>
  ...
  <body>
    <div class="page">
    ...
    </div>
  </body>
</html>

CSS:

.page {
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
}

编辑:视口元

<meta name="viewport" content="initial-scale=1, user-scalable=no, minimum-scale=1, maximum-scale=1, viewport-fit=cover">

在键盘显示之前,我为page类 div 计算了 551px 的宽度。键盘显示后,我的计算宽度为 1112 像素。知道为什么显示键盘会导致宽度返回不正确的值——或者我可以做些什么来获得正确的应用程序宽度?我还应该提到我正在使用cordova-plugin-keyboard一些键盘功能。

4

1 回答 1

1

看起来这个问题来自键盘插件。该shrinkView逻辑通过直接调整影响页面宽度的 WebView 的框架来工作。在这种情况下,它计算的是键盘和整个屏幕的交集,而不仅仅是应用程序的窗口。

我能够重现类似的行为,并引入了一个似乎可以解决它的补丁。(感谢Jin Lei)我想在发布之前做更多的测试,但是你可以直接从 GitHub 安装更新的插件或在本地手动应用补丁。

cordova plugin add https://github.com/cjpearson/cordova-plugin-keyboard

于 2019-06-11T02:23:56.277 回答