码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-11-01 12:46:04      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:settime   进入   imm   问题   web   function   method   _for   request   

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

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进入页面输入框自动聚焦弹起键盘

标签:settime   进入   imm   问题   web   function   method   _for   request   

原文地址:https://www.cnblogs.com/lishuang2243/p/11776147.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!