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() {
		//软键盘收起
	})
}
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐