都知道,在安卓系统中,要调起软键盘很简单,input框加autofocus或者获取dom元素触发focus事件即可
但是对于ios:ios有个安全机制,只有用户点击才能调起键盘(audio的播放也是,需要用户主动触发的事件才能触发,例如点击或者滚动屏幕)
需求:在第一个页面点击输入框跳到第二个页面时自动弹起软键盘
实现:在第一个页面点击输入框时触发输入框聚焦事件,这时候系统认为用户已经进行过点击行为并且已经触发过输入框的聚焦事件了,项目中第一个页面输入框为disabled,所以需要加一个额外的屏幕给一个屏幕不可见的输入框(不要用v-if跟v-show,而是用定位或者透明之类的样式使其在屏幕中不可见),在disabled输入框点击时触发这个不可见的输入框的聚焦事件,
然后使用vue路由跳转第二个页面,在第二个页面中的mounted里面加$nexttick触发输入框的focus事件
注:这里有个问题就是vue路由跳转在浏览器看来还是在同一页面中,所以第一次通过用户主动点击触发了focus事件之后在第二个页面也能触发focus,如果这里第一个页面跳第二个页面时用的浏览器的location或者其他方式跳转时是否能触发还有待验证