小米note9pro 进入页面输入框聚焦后未弹出键盘 app崩溃 uni-app

小米note9pro 进入页面输入框聚焦后未弹出键盘 app崩溃 uni-app

操作步骤:

```html
<input type="text" :focus="true">
```

### 预期结果:
```
弹出软键盘
```

### 实际结果:
```
未弹出,app崩溃
```

### bug描述:
```
进入页面,输入框聚焦掉起键盘卡死,app崩溃
java.lang.RuntimeException: Probable deadlock detected due to WebView API being called on incorrect thread while the UI thread is blocked. at FB0.c(Unknown Source:38) at com.android.webview.chromium.WebViewChromium.onCheckIsTextEditor(Unknown Source:26) at android.webkit.WebView.onCheckIsTextEditor(WebView.java:3108) at android.view.inputmethod.InputMethodManager.getStartInputFlags(InputMethodManager.java:2075) at android.view.inputmethod.InputMethodManager.startInputInner(InputMethodManager.java:1891) at android.view.inputmethod.InputMethodManager$DelegateImpl.startInput(InputMethodManager.java:595) at android.view.ImeFocusController.checkFocus(ImeFocusController.java:169) at android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:2091) at android.view.inputmethod.InputMethodManager.showSoftInput(InputMethodManager.java:1630) at android.view.inputmethod.InputMethodManager.toggleSoftInput(InputMethodManager.java:1826) at io.dcloud.common.adapter.util.DeviceInfo$3.run(Unknown Source:6) at java.util.TimerThread.mainLoop(Timer.java:562) at java.util.TimerThread.run(Timer.java:512) Caused by: java.util.concurrent.TimeoutException at java.util.concurrent.FutureTask.get(FutureTask.java:206) at FB0.c(Unknown Source:21) ... 12 more  
```

### 环境信息:

| 类别           | 信息       |
|----------------|------------|
| 产品分类       | uniapp/App |
| PC开发环境操作系统 | Windows    |
| PC开发环境操作系统版本号 | 21H2       |
| HBuilderX类型  | 正式       |
| HBuilderX版本号 | 3.8.4      |
| 手机系统       | Android    |
| 手机系统版本号  | Android 12  |
| 手机厂商       | 小米       |
| 手机机型       | M2007J17C  |
| 页面类型       | vue        |
| vue版本        | vue2       |
| 打包方式       | 云端       |
| 项目创建方式   | HBuilderX  |

更多关于小米note9pro 进入页面输入框聚焦后未弹出键盘 app崩溃 uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
<input type="text" :focus="focus"> 在onReady 中设置 this.focus = true

更多关于小米note9pro 进入页面输入框聚焦后未弹出键盘 app崩溃 uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是一个Android WebView线程死锁问题,常见于小米等定制ROM。建议尝试以下解决方案:

  1. 使用setTimeout延迟聚焦:
<input ref="myInput" type="text">
<script>
mounted() {
  setTimeout(() => {
    this.$refs.myInput.focus()
  }, 300)
}
</script>
  1. 检查manifest.json中是否配置了"softinputMode":
"app-plus": {
  "softinputMode": "adjustResize"
}
  1. 升级HBuilderX到最新版本(当前3.8.4可能存在已知兼容性问题)

  2. 如仍无法解决,可尝试使用plus.key.showSoftKeybord()强制显示键盘:

setTimeout(() => {
  plus.key.showSoftKeybord()
}, 500)
回到顶部