可以确认下页面是否引用了FastClick插件,这是专门解决移动端浏览器300ms点击延迟和点击穿透问题所开发的一个轻量级的库,但是ios11 后修复了移动点击300ms延迟,所以引用FastClick插件在ios11.3以上的版本可能存在冲突,从而出现拉起软键盘滞后的问题
解决方案:
-
在fastclick源码中改造,在node_module里找到fastClick文件,然后找到focus方法,强制focus
image.png -
在本身代码的FastClick加载时增加版本判断。找到FastClick.attach(document.body)的地方,增加判断,iOS11以上的版本不加载
const str= navigator.userAgent.toLowerCase()
const ver=str.match(/cpu iphone os (.*?) like mac os/)
if(!ver || (ver && parseInt(ver[1])< 11)){ // 非IOS系统 或者ios<11的版本加载
// 引入fastclick 做相关处理
FastClick.attach(document.body)
}
网友评论