JS判断手机是安卓还是IOS,以及监听软键盘弹出收起
直接上代码,踩得坑都在代码里
var u = navigator.userAgent; //获取到的是个字符串,包括很多信息,我只匹配我想要的信息
var isAnd = u.indexOf("Android") > -1 || u.indexOf("Linux") > -1; //判断是安卓手机
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //判断是苹果手机
if (isAnd) {
var oh = document.documentElement.clientHeight || document.body.clientHeight; //获取变化之前的可视区域的高度
window.addEventListener("resize", function() {
//resize事件,这里有个小坑,当绑定多个事件是后面的会覆盖前面的事件
//所以我是用addEventListener,绑定多个事件
var rh = document.documentElement.clientHeight || document.body.clientHeight;//变化之后的高度
if (rh < oh) {
//软键盘弹出
} else {
//软键盘收起
}
})
}
//苹果中不会触发resize,但是可以用focusin/focusout
if (isIOS) {
document.body.addEventListener("focusin", function() {
//软键盘弹出
});
document.body.addEventListener("focusout", function() {
//软键盘收起
})
}