uni-app plus 5+ keyboardchange 在 android 下不起作用
uni-app plus 5+ keyboardchange 在 android 下不起作用
| 开发环境 | 版本号 | 项目创建方式 |
|----------|--------|--------------|
| HBuilderX | 3.2.1 | - |
产品分类:HTML5+
手机系统:Android
手机系统版本号:Android 11
手机厂商:小米
手机机型:Redmi 10X
打包方式:云端
示例代码:
doc.addEventListener('keyboardchange', function(e) {
var height = e.height; // 键盘高度
JX.log('keyboardchange', 'ios 键盘显示 高度:' + height)
if (height > 0) {
keyboardIsOpen = true;
keyboardHeight = height;
settings.keyboardHeight = keyboardHeight;
app.setSettings(settings); //更新一下键盘高度
} else {
JX.log('keyboardchange', 'ios 键盘隐藏')
keyboardIsOpen = false
}
}, false);
操作步骤:
doc.addEventListener('keyboardchange', function(e) {
var height = e.height; // 键盘高度
JX.log('keyboardchange', 'ios 键盘显示 高度:' + height)
if (height > 0) {
keyboardIsOpen = true;
keyboardHeight = height;
settings.keyboardHeight = keyboardHeight;
app.setSettings(settings); //更新一下键盘高度
} else {
JX.log('keyboardchange', 'ios 键盘隐藏')
keyboardIsOpen = false
}
}, false);
预期结果:
- 监听软键盘的显示与隐藏
实际结果:
- android 不起作用
bug描述:
- plus 5+ keyboardchange 在 android 下不起作用,ios 没事。
更多关于uni-app plus 5+ keyboardchange 在 android 下不起作用的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app plus 5+ keyboardchange 在 android 下不起作用的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在Android平台,keyboardchange事件确实存在兼容性问题。根据官方文档和社区反馈,这个事件在Android上通常无法正常触发,主要原因是Android系统本身没有提供统一的键盘高度变化监听API。
建议改用以下替代方案:
- 使用resize事件监听窗口变化:
window.addEventListener('resize', function() {
var windowHeight = window.innerHeight;
// 通过窗口高度变化判断键盘状态
});
- 使用uni-app的页面生命周期:
在
pages.json中配置:
{
"path": "pages/xxx/xxx",
"style": {
"app-plus": {
"softinputMode": "adjustResize"
}
}
}
然后在页面的onShow和onHide中处理相关逻辑。
- 对于输入框焦点变化:
// 监听输入框焦点事件
inputElement.addEventListener('focus', function() {
// 键盘弹出处理
});
inputElement.addEventListener('blur', function() {
// 键盘收起处理
});

