1. 程式人生 > >使用JavaScript實現“手動”關閉輸入法鍵盤

使用JavaScript實現“手動”關閉輸入法鍵盤

場景:app裡,比如:在一個頁面中,可以用彈起的輸入法鍵盤鍵入字元到輸入框中,再點確定,或者儲存按鈕等操作即可。但是有很多情況下卻沒那麼舒暢,比如:當輸入法鍵盤喚起時,點左上角返回按鈕返回至上一個頁面。有可能會發生輸入法鍵盤並未關閉而是在返回的頁面中繼續保留著彈起的狀態。這樣的效果會非常扎眼,那這時就要想到如何在進行返回至別的頁面之前,把輸入法鍵盤關閉呢?

親測一款解決方案:

$("#btn_back").off("click").on("click",function(){
//手動關閉輸入法鍵盤事件(讓處於"焦點"狀態的控制元件失去焦點即可解決)
plus.nativeUI.confirm("您正處於編譯狀態,確認退出?",function(e){
if(e.index == 0){
}else if(e.index == 1){

//此為手動關閉輸入法鍵盤核心api
document.activeElement.blur();
mui.back();
}
},"",["取消","確認"]);
});

上面是在使用者點選了返回按鈕之後,呼叫了plus的API,可以呼叫到原生的退出警告提示,注意到“確認”按鈕點選

之後響應的是e.index == 1的情況,此時使用document.activeElement.blur();手動關閉鍵盤即可解決。

此原理也是讓獲的焦點的控制元件失去焦點,輸入法鍵盤即可關閉。