uni-app setTitleNViewSearchInputFocus(true) 获取焦点后未出现键盘 手动点击input后键盘出现0.5s再次消失

uni-app setTitleNViewSearchInputFocus(true) 获取焦点后未出现键盘 手动点击input后键盘出现0.5s再次消失

项目信息 详细信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 windows10
HBuilderX类型 正式
HBuilderX版本号 2.9.3
手机系统 Android
手机系统版本号 Android 10
手机厂商 华为
手机机型 mate30 4G
页面类型 vue
打包方式 云端
项目创建方式 HBuilderX

示例代码:

onLoad(option) { // 通过option接收其他页面传递的参数
// #ifdef APP-PLUS
currentWebview = this.$scope.$getAppWebview();
// #endif  

// 如果有参数,不自动获取焦点;没有参数,自动获取焦点  
if(option.params) {  
    // 解析参数,传递给属性  
    // console.log('option', JSON.parse(option.params))  
    this.params = JSON.parse(option.params)  
    //开始搜索  
    this.doSearch()  
}else {  
    // 获取焦点  
    // #ifdef APP-PLUS  
    currentWebview.setTitleNViewSearchInputFocus(true)  
    // #endif  
}

操作步骤:

onLoad(option) { // 通过option接收其他页面传递的参数
// #ifdef APP-PLUS
currentWebview = this.$scope.$getAppWebview();
// #endif  

// 如果有参数,不自动获取焦点;没有参数,自动获取焦点  
if(option.params) {  
    // 解析参数,传递给属性  
    // console.log('option', JSON.parse(option.params))  
    this.params = JSON.parse(option.params)  
    //开始搜索  
    this.doSearch()  
}else {  
    // 获取焦点  
    // #ifdef APP-PLUS  
    currentWebview.setTitleNViewSearchInputFocus(true)  
    // #endif  
}

预期结果:

弹出 输入键盘 不消失

实际结果:

第一次自动获取焦点 未弹出键盘 手动点击获取焦点 键盘出现 0.5s后消失 循环

bug描述:

setTitleNViewSearchInputFocus(true) 获得焦点后马上消失 弹出 键盘 键盘马上消失 点击input获取焦点后 弹出 键盘 键盘马上消失 再次点击 键盘回来 又马上消失


更多关于uni-app setTitleNViewSearchInputFocus(true) 获取焦点后未出现键盘 手动点击input后键盘出现0.5s再次消失的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

请官网尽快解决 影响到app发布

更多关于uni-app setTitleNViewSearchInputFocus(true) 获取焦点后未出现键盘 手动点击input后键盘出现0.5s再次消失的实战教程也可以访问 https://www.itying.com/category-93-b0.html


经测试 input 组件 和 官方封装的 uni-search-bar 也有焦点获取 软键盘只出现0.5s的bug

仅特定机型出现吗? 提供一下测试工程

我的也出现这种情况了,华为荣耀10

回复 4***@qq.com: 你这个问题解决了吗,我也出现这个问题 我是小米9

这个问题解决了吗,我也出现这个问题 我是小米9

这是一个已知的uni-app原生导航栏搜索框在Android设备上的焦点问题。以下是关键点分析:

  1. 问题原因:
  • Android系统对原生导航栏搜索框的键盘控制存在兼容性问题
  • 焦点获取后系统可能误判导致键盘立即消失
  1. 临时解决方案:
// 添加延时处理
setTimeout(() => {
    currentWebview.setTitleNViewSearchInputFocus(true)
}, 300)
回到顶部