IOS 13 webview 键盘与 webview 显示混淆

IOS 13 webview keyboard messes up with webview display

我在我的 webview 中显示这个联系表单,但是当我点击最底部的文本区域时,它会聚焦在它上面并将视角移到中心(我认为这是正常/理想的行为)但是之后键盘隐藏它仍然是这样,因此在底部创建了一个白色 space 并且除非我单击最上面的输入文本,否则它将陷入这种状态。我在 IOS 14 上检查了此行为,它似乎已得到修复。但我只是想知道如何在 IOS 13.

上解决这个问题

我花了一整天的时间才弄明白,反正这是我的解决方案。

for IOS 13 只需在键盘隐藏后滚动到 (0,0)(您可以通过 textarea 或 input 的 onblur 来收听此内容。

const scrollTopAfterKeyboardHide = () => {
  Array.from(document.querySelectorAll("textarea, input"), r => {
    r.onblur = r => {
      scroll(0, 0)
    }
  })
}

function iOSversion() {
  if (/iP(hone|od|ad)/.test(navigator.platform)) {
    var a = navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/)
    return parseInt(a[1], 10)
  }
}