uni-app iOS 输入框输入过程自动失焦

uni-app iOS 输入框输入过程自动失焦

示例代码:

<input  
      v-bind="inputProps"  
      class="mt-input"  
      :focus="isFocus"  
      :value="inputValue"  
      :password="isPassword"  
      :confirm-type="confirmType"  
      :style="inputStyle"  
      :placeholder-style="placeholderStyle || defaultPlaceholderStyleString"  
      @input="onInput"  
      @focus="onFocus"  
      @blur="onBlur"  
      @confirm="onConfirm"  
/>

操作步骤:

切换iPhone键盘,新增“繁体粤语 - 笔画”,到输入框多次输入 “ * ”和 “。”两个键,会触发输入框的自动失焦,目前在4.45的版本,Uniapp转H5和转的App的任意输入框都能稳定复现。目前iOS 16.7.10,iOS17,iOS 18,都测试有发现。

预期结果:

期望可以有解决办法不自动失焦

实际结果:

实际多次自动失焦

bug描述:

键盘使用系统繁体笔画,在input输入框输入过程会自动失焦,目前发现输入* 和 。能稳定复现可参照附件视频输入

开发环境 版本号 项目创建方式
Mac M3 15.3.1 HBuilderX
手机系统 版本号
iOS iOS 18
手机厂商
苹果
手机机型 iPhone13 Pro

输入框bug.zip


更多关于uni-app iOS 输入框输入过程自动失焦的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app iOS 输入框输入过程自动失焦的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这个问题是iOS系统特定输入法(繁体笔画)与uni-app输入框交互时的兼容性问题。以下是关键分析:

  1. 问题根源:
  • 主要出现在iOS繁体笔画输入法下
  • 输入特定符号(*和。)时触发
  • 底层是WebView与输入法的兼容性问题
  1. 临时解决方案:
<input 
    @blur="handleBlur"
    :focus="keepFocus"
/>
handleBlur() {
    this.keepFocus = false;
    this.$nextTick(() => {
        this.keepFocus = true;
    });
}
回到顶部