需求是在Webwiew内,点击一个非输入框的组件,拉起软键盘并处理输入内容。输入框本身不可见。
我的实现方式是在js里监听一个canvas的touchend事件,事件处理里调用另一个input组件的focus()方法(input组件位置放到页面外),可以实现需求。但是有时会出现软键盘无法拉起的情况,反复点击也无法弹出。
在问题现场下,我在另一个按钮的点击事件里打印document.activeElement.id,跟input组件的id一致,说明貌似焦点是有成功设置到input上的,但是输入框上并没有出现选中效果,软键盘也没有弹出。
尝试过先blur再focus,延时调用focus,都不能解决问题。
重现方式还不确定,反复切换前后台,关开应用后,有概率出现,概率并不太低。
请教大佬如何解决该问题,或者如果无解的话是否有替代方案实现该需求,非常感谢。