小米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。建议尝试以下解决方案:
- 使用setTimeout延迟聚焦:
<input ref="myInput" type="text">
<script>
mounted() {
setTimeout(() => {
this.$refs.myInput.focus()
}, 300)
}
</script>
- 检查manifest.json中是否配置了"softinputMode":
"app-plus": {
"softinputMode": "adjustResize"
}
-
升级HBuilderX到最新版本(当前3.8.4可能存在已知兼容性问题)
-
如仍无法解决,可尝试使用plus.key.showSoftKeybord()强制显示键盘:
setTimeout(() => {
plus.key.showSoftKeybord()
}, 500)