zoukankan      html  css  js  c++  java
  • 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"/>

  • 相关阅读:
    selenium===介绍
    工具安装===Sublime Text-安装
    Django===django工作流
    python基础=== itertools介绍(转载)
    python基础===如何优雅的写代码(转自网络)
    python基础===一道小学奥数题的解法
    python基础===列表类型的所有方法
    python基础===通过菲波那契数列,理解函数
    python基础===字符串切片
    安全测试===BurpSuite使用教程-附安装包
  • 原文地址:https://www.cnblogs.com/RAINHAN/p/7125025.html
Copyright © 2011-2022 走看看