perf: 优化键盘关闭

This commit is contained in:
kuaifan 2022-06-10 20:59:01 +08:00
parent 58b5843dd9
commit 300798981d
4 changed files with 36 additions and 7 deletions

View File

@ -1125,17 +1125,39 @@
}, },
/** /**
* 主动失去焦点 * 主动失去焦点关闭键盘
* @param el * @param el
*/ */
onBlur(el = null) { onBlur(el = null) {
if (el) { setTimeout(_ => {
el.blur(); $A.eeuiAppKeyboardHide();
} else { if (el) {
if (document.activeElement && typeof document.activeElement.blur === "function") { el.blur();
document.activeElement.blur(); } else {
if (document.activeElement) {
if (document.activeElement.tagName === "BODY") {
let inputElement = document.getElementById("toLoseFocusInput")
if (!inputElement) {
inputElement = document.createElement("input");
inputElement.id = "toLoseFocusInput";
inputElement.type = "text";
inputElement.style.position = "fixed";
inputElement.style.top = "0px";
inputElement.style.left = "0px";
inputElement.style.zIndex = "-1";
inputElement.style.opacity = "0";
inputElement.addEventListener("focus", e => {
document.activeElement.blur();
});
document.body.appendChild(inputElement);
}
inputElement.focus()
} else {
document.activeElement.blur();
}
}
} }
} }, 1);
} }
}); });

View File

@ -53,6 +53,11 @@
requireModuleJs("eeui").keepScreenOff(); requireModuleJs("eeui").keepScreenOff();
}, },
eeuiAppKeyboardHide() {
if (!$A.isEEUiApp) return;
requireModuleJs("eeui").keyboardHide();
},
eeuiAppSendMessage(object) { eeuiAppSendMessage(object) {
if (!$A.isEEUiApp) return; if (!$A.isEEUiApp) return;
requireModuleJs("webview").sendMessage(object); requireModuleJs("webview").sendMessage(object);

View File

@ -641,6 +641,7 @@ export default {
fileShow(val) { fileShow(val) {
if (!val) { if (!val) {
this.browseFile(0) this.browseFile(0)
$A.onBlur()
} }
}, },

View File

@ -5,6 +5,7 @@
left: 0; left: 0;
right: 0; right: 0;
bottom: 0; bottom: 0;
z-index: 1;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
border-radius: 18px 18px 0 0; border-radius: 18px 18px 0 0;