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)
}
}
我在我的 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)
}
}