mui中input获取焦点事件

项目中要求进入页面获取指定input的焦点,找了好久才找到了。
上代码!

var autoFocusInput= function(id) {
		var nativeWebview, imm, InputMethodManager;
		//初始化NativeObject
		if(mui.os.android) {
			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);
		} else {
			nativeWebview = plus.webview.currentWebview().nativeInstanceObject();
		}
		//获取焦点并调用软键盘
		var nativeWebview = plus.webview.currentWebview().nativeInstanceObject();
		if(mui.os.android) {
			//强制当前webview获得焦点
			plus.android.importClass(nativeWebview);
			//这步很关键,不写的话获取焦点就无效
			nativeWebview.requestFocus();
			//imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
		} else {
			nativeWebview.plusCallMethod({
				"setKeyboardDisplayRequiresUserAction": false
			});
		}
		setTimeout(function() {
			var inputObj = document.getElementById(id);
			inputObj.focus();
			//获取当前焦点所在的view并隐藏软件盘
			var view = main.getCurrentFocus();
			imm.hideSoftInputFromWindow(view.getWindowToken(),InputMethodManager.HIDE_NOT_ALWAYS);
		}, 200);

}	

调用:autoFocusInput("id");

我是将放在plusReady函数里和show监听函数里,不要放在ready函数里面,会报错。为什么放在两个函数里面的,因为一个第一个是初始化,后面那个show监听是后面每次打开才会执行的;也可以在上个页面自定义个fire函数,然后将调用方法放在里面就行了,如果你们有更好的方法,欢迎评论!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值