收藏
回答

iOS textarea、input 在微信切后台后导致 focus 无效

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug textarea、input 微信iOS客户端 8.0.18 2.23.1

【问题描述】当 textarea 或 input 组件在获取焦点(focus)的状态下,左右滑动 iOS 底部“手势横线”切换至任意”B 应用“,之后再从“B 应用”切换回“微信”时,会导致已获取焦点的 textarea、input 失焦,且键盘隐藏、无法再次获取焦点、无法拉起键盘。具体表现为设置 focus 属性为 true 时,无法自动拉起键盘。

与“代码片段”结合阅读:

【期望】点击“获取焦点”后,键盘自动弹起并获取焦点。切换后台/其他 App 再返回时,保持键盘弹起状态,且设置焦点(focus)有效果。

【实际】首次点击“获取焦点”,键盘可正常弹起并获取焦点;左右滑动 iOS 底部“手势横线”切换至任意“B 应用”再切回微信后,键盘自动隐藏,点击“获取焦点”无效。

【复现步骤】1. 点击“获取焦点”按键,拉起键盘,获取 textarea 焦点;2. 滑动 iOS 底部“手势横线”切换至任意后台 App;3. 滑动 iOS 底部“手势横线”切回微信;4. 点击“获取焦点”。

【bug 表现】切回微信后,点击“获取焦点”按键无法获取焦点、无法拉起键盘。

最后一次编辑于  2022-03-20
回答关注问题邀请回答
收藏

1 个回答

  • Riven.
    Riven.
    2022-03-21

    你好,反馈已收到,我们核实下,有进展会同步。

    2022-03-21
    有用
    回复 3
    • 󠀀
      󠀀
      2022-03-21
      好的,非常感谢,很抱歉给你们工作带来不便了,我这边也会持续跟进。另外就目前观察的情况来看:1. 微信小程序外的输入框(例如聊天界面)不会触发此问题;2. auto-focus 经上述操作后也处于失效状态。
      2022-03-21
      回复
    • Riven.
      Riven.
      2022-03-22回复󠀀
      这里是设计如此,focus 属性的含义并不是作为持续的聚焦状态,而只是使用它的上升沿和下降沿来触发聚焦或失焦状态
      2022-03-22
      回复
    • 󠀀
      󠀀
      2022-03-23回复Riven.
      了解,那既然是 feature,那为什么“微信 App”切后台前通过设置 focus 为 true 可以拉起键盘触发聚焦,而切完回来后就拉不起来了。换句话说,如果可以通过 focus 的上升沿和下降沿来触发聚焦或者失焦,那不应该这个效果只有“微信 App”切后台前有效吧,而切完后回来就无效了(代码片段可复现)。


      我甚至尝试过在切回来后实时创建新的 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
      2022-03-23
      回复
登录 后发表内容