【问题描述】当 textarea 或 input 组件在获取焦点(focus)的状态下,左右滑动 iOS 底部“手势横线”切换至任意”B 应用“,之后再从“B 应用”再切换回“微信”时,会导致已获取焦点的 textarea、input 失焦,且键盘隐藏、无法再次获取焦点、无法拉起键盘。具体表现为设置 focus 属性为 true 时,无法自动拉起键盘。
与“代码片段”结合阅读:
【期望】点击“获取焦点”后,键盘自动弹起并获取焦点。切换后台/其他 App 再返回时,保持键盘弹起状态,且设置焦点(focus)有效果。
【实际】首次点击“获取焦点”,键盘可正常弹起并获取焦点;左右滑动 iOS 底部“手势横线”切换至任意“B 应用”再切回微信后,键盘自动隐藏,点击“获取焦点”无效。
【复现步骤】1. 点击“获取焦点”按键,拉起键盘,获取 textarea 焦点;2. 滑动 iOS 底部“手势横线”切换至任意后台 App;3. 滑动 iOS 底部“手势横线”切回微信;4. 点击“获取焦点”。
【bug 表现】切回微信后,点击“获取焦点”按键无法获取焦点、无法拉起键盘。
你好,反馈已收到,我们核实下,有进展会同步。
我甚至尝试过在切回来后实时创建新的 textarea 都无效;切回来后设置 focus 为 false 而后再设置 focus 为 true 也依然无效,必须要重新载入小程序才能全部恢复。
除此之外,我还发现当“微信 App”后台切回来后,如果手动点击了某个 textarea 触发聚焦后,那么后续这个 textarea 就可以通过设置 focus 为 true 拉起键盘“触发聚焦”(* 注1),其他未手动点击的 textarea 仍无效(代码片段可复现)。
从上述的几点表现来看怎么看都不像 feature 啊。
【注释】
1. 此处有一个 bug,倘若在未手动点击 textarea 触发聚焦前,设置 focus 为 true(此时仍无法拉起键盘),之后手动点击 textarea 主动触发聚焦,然后再触发失焦,小程序会再默认触发一次聚焦并拉起键盘,bug 演示:https://mmbiz.qpic.cn/mmbiz_gif/7XEHmpfVlbicaTotibeKZFx8PxRIfV0LC8WadMbPdqiakeDx9tia06bkbicKDEYkRgqrHr3Siapvmic7tx7wXAYsibhbicw/0?wx_fmt=gif,代码片段:https://developers.weixin.qq.com/s/H9vv4XmC73xD。