mui进入页面输入框自动聚焦弹起键盘

Posted lishuang2243

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mui进入页面输入框自动聚焦弹起键盘相关的知识,希望对你有一定的参考价值。

这个内容社区里都有,用的是个集合算是比较全的了,记录一下我用这个时的坑

mui.plusReady(function() {
   setTimeout(function(){
      initNativeObjects();
      showSoftInput();
 },50)

})

 

 

var initNativeObjects = function() {
if (mui.os.android) {
console.log(1)
var main = plus.android.runtimeMainActivity();
var Context = plus.android.importClass("android.content.Context");
InputMethodManager = plus.android.importClass("android.view.inputmethod.InputMethodManager");

imm = main.getSystemService(Context.INPUT_METHOD_SERVICE);


setTimeout(function() {
//此处可写具体逻辑设置获取焦点的input
var inputElem = document.querySelector("input")
inputElem.focus();
inputElem.parentNode.classList.add(‘mui-active‘);
}, 100);
} else {
console.log(2)
nativeWebview = plus.webview.currentWebview().nativeInstanceObject();
setTimeout(function() {
//此处可写具体逻辑设置获取焦点的input
var inputElem = document.querySelector("input")
inputElem.focus();
inputElem.parentNode.classList.add(‘mui-active‘);
}, 100);
}
};
var showSoftInput = function() {
var nativeWebview = plus.webview.currentWebview().nativeInstanceObject();     //这个代码变量的使用时为了防止有一些手机键盘弹不起来
if (mui.os.android) {
console.log(3)
plus.android.importClass(nativeWebview);
nativeWebview.requestFocus();
imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
} else {
console.log(4)
nativeWebview.plusCallMethod({
"setKeyboardDisplayRequiresUserAction": false
});

document.querySelector(‘input‘).focus();
}
setTimeout(function() {
//此处可写具体逻辑设置获取焦点的input
var inputElem = document.querySelector("input")
inputElem.focus();
inputElem.parentNode.classList.add(‘mui-active‘);
}, 100);
};

 

这段代码理论上安卓ios通用

 

但是,这个但是就是我的坑

这个进入页面的跳转事件,

一定要用mui自带的点击事件,否贼,进入页面自动弹起键盘ios是不好使的

我以前使用的是

 document.getElementById(‘input1‘).addEventListener(‘tap‘, function() {

   

mui.openWindow({
})

});     这个不行

必须要用

mui(document).on("tap","#input1",function(){
mui.openWindow({

})
})

友情提示,

现在更新的越来越恶心,

如果确定使用mui开发,切记一切东西最好用mui封装好的,要不项目出问题了你都不知道啥原因

例如,最新的HbuliderX中jq的$.ajax请求算是跨域,发请求必须要用mui.ajax,要不不报错,程序也不执行,就在那卡着,

 

以上是关于mui进入页面输入框自动聚焦弹起键盘的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序键盘拉起后页面上移问题

移动端中 H5输入框在弹起键盘后被遮挡

小程序键盘的自动弹出和收起

iOS webview html5 移动端 软键盘弹起遮挡输入框

解决Flutter键盘弹起导致与输入框有间距问题(Flutter键盘弹起Scaffold布局流程)解析

解决Flutter键盘弹起导致与输入框有间距问题(Flutter键盘弹起Scaffold布局流程)解析