解决:h5进入页面拉起键盘ios不生效问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决:h5进入页面拉起键盘ios不生效问题相关的知识,希望对你有一定的参考价值。

参考技术A 通常我们在一进入页面使用mouted方法执行

即可实现,经测试安卓可以,但是ios不能聚焦,也弹出不了键盘
搜索资料发现,ios之所以不能弹出键盘是因为ios必须通过触发一个方法才能拉起键盘
这里想着怎么在页面中触发。

解决方法:
带有输入框页面为b页面。通过事件跳到b页面的a页面
把b页面的输入框写成组件
在a页面就引用此组件,并将组件的样式设为

即 在a页面不展示此组件 但是要在点击事件触发跳转到b页面之前,将a组件的光标聚焦---focus方法。
在b页面也同时使用此组件即可 只是在b页面要把输入框样式改为正常样式。
(若有c页面返回到b页面,需要拉起键盘。则需要在c页面也引用此输入组件,样式设为隐藏,在c的返回事件里 再调用一遍focus)

注意:this.$nextTick(() =>
) 最好将focus方法套在这个方法里 才能起作用

例子:(忽略我难看的样式)
输入框组件

a页面

b页面

iOS中 H5的input输入框focus()无法自动拉起键盘(解决方法)

ios的hybird APP 无法使用focus()获取焦点和键盘的问题。

解决方案

原来,在App的配置文件(config.xml),里面默认会有一句

1 <preference name="KeyboardDisplayRequiresUserAction" value="true" />

这里面的大概意思就是,键盘的显示需要用户去触发,而且是设置为true的!!!

那么下面你们知道怎么做了吧,只需要把value的值改为false,一切都解决了。

1 1 <preference name="KeyboardDisplayRequiresUserAction" value="false" />
swift中可能在别的配置文件中修改,不一定是config.xml

以上是关于解决:h5进入页面拉起键盘ios不生效问题的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发-处理H5拉起微信支付返回到Safari情况

解决微信H5页面软键盘弹起后页面下方留白的问题(iOS端)

H5 IOS 虚拟键盘不回落的问题

h5 解决ios端输入框失去焦点后页面不回弹或者底部留白问题

.NET(C#) SendKeys模拟键盘按键不生效使用WinAPI的替代方案

h5页面在iOS上的问题解决