软键盘打开的监听,如何监听软键盘的弹出
一、H5如何对android和ios手机软键盘的监听
总结:
1.在ios中软键盘弹起时,仅会引起body的scrollTop值改变,但是我们可以通过输入框的获取焦点情况来做判断,单也只能在ios中采用这个方案,因为在android中存在主动受气键盘后,但输入框并没有失去焦点,而ios中键盘受气后就会失去焦点;
2.在androis中软键盘弹起或收起时,会改变window的高度,因此监听window的onresize**;
一、Android
//获取原窗口的高度
var originalHeight=document.documentElement.clientHeight||document.body.clientHeight;
window.onresize=function(){
//键盘弹起与隐藏都会引起窗口的高度发生变化
var resizeHeight=document.documentElement.clientHeight|| document.body.clientHeight;
if(resizeHeight-0<originalHeight-0){
//当软键盘弹起,在此处*作
}else{
//当软键盘收起,在此处*作
}
}
二、ios
focusin和focusout支持冒泡,对应focus和blur,使用focusin和focusout的原因是focusin和focusout可以冒泡,focus和blur不会冒泡,这样就可以使用**代理,处理多个输入框存在的情况。
document.body.addEventListener('focusin',()=>{
//软键盘弹出的**处理
if(isIphone()){
}
})
document.body.addEventListener('focusout',()=>{
//软键盘收起的**处理
if(isIphone()){
}
})
特此声明文章出处:
二、如何监听软键盘的弹出***隐藏
InputMethodManager有一个方法isActive(View view):如果view是输入法的活动view,则返回true。也就是说,如果是由view触发弹出软键盘,则返回true。
if(isActive(edittext))
隐藏键盘
接着让另一个view强制获取焦点,这样isActivite(ediitext)就为false.
这个方法比较简单,代码比较短,也很好理解。
附上代码:
InputMethodManager inputMethodManager=(InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);<br>private boolean hideKeyboard(){
if(inputMethodManager.isActive(searchEditText)){<br>//因为是在fragment下,所以用了getView()获取view,也可以用findViewById()来获取父控件
getView().requestFocus();//使其它view获取焦点.这里因为是在fragment下,所以便用了getView(),可以指定任意其它view
inputMethodManager.hideSoftInputFromWindow(getActivity().getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
return true;
}
return false;
}
ps:如果是手动弹出键盘,getActivity().getCurrentFocus()改成searchEditText.并且手动弹出的键盘isActivie()失效,可用标记来判断.
三、软键盘可以预防木马**么
软件键盘可以防止那些键盘记录器型的木马盗取账号
不过现在的木马都插入线程了
软件键盘也不怎么好使
下面是一些**木马常用方法看完后你就明白了**木马怎么**的方法,**软件如何**的原理:
1、键盘记录:很多**木马病*实质上是利用键盘“钩子”程序监听和记录用户的击键动作,然后通过**软件的邮件发送模块把记录下的密码发送到**木马的指定邮箱。
对付击键记录**木马,目前有一种比较普遍的方法就是通过软键盘输入,软键盘也叫虚拟键盘,用户在输入密码时,先打开软键盘,然后用鼠标选择相应的字母输入,这样就可以避免**木马记录击键。
2、屏幕快照:软键盘输入使得使用击键记录技术的**木马失去了作用,但是新的木马病*会通过屏幕快照将用户的登录界面连续保存为多张图片,然后通过自带的发信模块发向指定的邮件接受者,**木马通过对照图片中鼠标的点击位置,就很有可能破译出用户的登录账号和密码,从而突破软键盘密码保护技术。
3、内存扫描拦截:**木马病*运行后,它通过Hook技术对系统中所有程序的进程检测,对相关API的调用进行了监控,**木马**软件通过查找特定句柄、窗口或关键字,可以拦截对Windows中的键盘、鼠标、**、粘贴等**,或者直接读取进程未加密的帐号密码,或者对其他API函数的调用**拦截,这种木马具有很强隐蔽性,目前没有非常有效的预防手段。
4、钓鱼:网络钓鱼攻击,**网站伪装成知名公司主页,利用域名相似性和IE浏览器的地址欺*漏洞,诱*网民输入账号和密码,并且通过**脚本程序种植**木马病*,诱使更多用户访问该网站造成感染,网络*子利用这些假网站,盗取登录者账号、密码,给相关部门和行业带来巨大损失,使人们对于网上交易行为的安全性产生更大的质疑,严重阻碍了电子商务行业的发展。
目前防止**的解决办法:
1、**软件:对于已经知道的**木马病*等有害**程序,**软件采用病*特
征码过滤等技术,包括专门的木马查*软件,在设计原理、技术思路上类似,对于新的
**木马**软件**程序,**软件成功率在20%左右,目前**软件公司也在探索
新的技术和方法,目前也并没有取得实质性突破;
2、防火墙:采用端口检测控制等技术,有些防火墙具有特征码过虑技术,比如对于
帐号密码等设置的敏感字符,禁止发送和传递,但是一旦**木马**软件帐号密码被
加密传送,或者利用80等正常端口发送,防火墙也无能为力;
3、PIN码实物卡片:PIN码实物卡片是软键盘输入技术改进型,PIN码实物卡片发行费
用和成本高,目前仅应用在部分银行网站;
4、电话、短信认证,这种方式成本较高,没有普遍采用;
5、i-key(USB-key),硬件密宝,这种方式比较安全,针对性很强,局限于发行商自
己的网站或游戏。
目前技术手段对于**木马**软件和防止**还没有完整的经济的解决办法。