MUI ios 與 安卓 軟鍵盤調用事件


var openSoftKeyboard = function() {
                if(mui.os.ios) {
                    var webView = plus.webview.currentWebview().nativeInstanceObject();
                    webView.plusCallMethod({
                        "setKeyboardDisplayRequiresUserAction": false
                    });
                } else {
                    var webview = plus.android.currentWebview();
                    plus.android.importClass(webview);
                    webview.requestFocus();
                    var Context = plus.android.importClass("android.content.Context");
                    var InputMethodManager = plus.android.importClass("android.view.inputmethod.InputMethodManager");
                    var main = plus.android.runtimeMainActivity();
                    var imm = main.getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
                }
            }
            1. 
            mui.plusReady(function() {
          //頁面隱藏事件
                plus.webview.currentWebview().addEventListener("hide",function(e){
                    document.getElementById("search").value="";
                    document.getElementById("search").blur();//搜索框取消焦點,關閉軟鍵盤
                });
                //頁面顯示事件
                plus.webview.currentWebview().addEventListener("show",function(e){
                    setTimeout(function() {//自動打開軟鍵盤,搜索框獲取焦點
                        openSoftKeyboard();
                        document.getElementById("search").focus();
                    }, 600);
                    return false;
                });
})

  

注意的bug: ajax 調用 、 createview 的創建 或者 銷毀、plus.nativeUI 的 showWaiting() closeWaiting() 等等,會引起當前頁面的聚焦問題,所以會導致blur()的觸發,而blur()會自動調用native 的 軟鍵盤關閉。
綜上所述,由於各種原因導致失去焦點,引起軟鍵盤閃退。

focus() 聚焦引起的軟鍵盤閃退問題: 做適當的延遲就行了
setTimeout(function() {
mobile.focus();
}, 300)

軟鍵盤的數字選項:(默認英文選項)
<input id="search" type="tel"/>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM