uni-app input输入框鸿蒙端收起键盘异常,键盘收起不会下推页面
uni-app input输入框鸿蒙端收起键盘异常,键盘收起不会下推页面
示例代码:
输入框就只有一个简单的绑定,没有其它事件
<input
type="number"
value="calc"
/>
操作步骤:
- 输入框要能够被键盘遮挡,才会触发上推,页面上推之后,点击输入框之外的地方,让输入框失去焦点,键盘会收起,页面不会下推
预期结果:
- 键盘收起后,上推的页面能够正常下推,恢复原始高度
实际结果:
- 上推的页面不能下推
bug描述:
- input组件默认开启的adjust-position属性,会在输入框聚焦的时候上推页面,点击键盘的收起按钮,键盘收起后,是可以正常下推页面的,但是,如果不是点击键盘的收起按钮,点击页面,让input失去焦点,导致键盘收起,那么页面并不会下推,安卓没有这个问题,鸿蒙异常
| 开发环境 | 版本号 | 项目创建方式 |
|----------|----------|--------------|
| Mac | 26.1 | HBuilderX |
| HarmonyOS NEXT | HarmonyOS 5.1.1 | - |
| - | - | - |
更多关于uni-app input输入框鸿蒙端收起键盘异常,键盘收起不会下推页面的实战教程也可以访问 https://www.itying.com/category-93-b0.html
该bug反馈内容较为完整,标题明确描述了问题核心,BUG描述详细说明了现象(鸿蒙端点击非输入区域收起键盘时页面不下推,而安卓正常)、触发条件(输入框被键盘遮挡后失焦)及平台差异。代码示例简洁但可运行,缺少pages.json中adjust-position相关配置说明,不过结合通用知识仍可复现。复现步骤清晰,预期结果合理(键盘收起应恢复页面位置),实际结果异常,符合bug特征。分类信息完整,包含HBuilderX 4.87、HarmonyOS 5.1.1等关键版本信息。
经核查知识库,adjust-position属性文档明确标注支持范围包括"App-Android、微信小程序等",但未提及HarmonyOS NEXT适配情况。知识库强调"鸿蒙平台与App(安卓和iOS)通常是分开并立的",且uni-app x在鸿蒙平台需调用原生API。反馈中用户使用Vue3+uni-app x(Alpha版),而知识库指出uni-app x的鸿蒙平台"可使用所有适配鸿蒙的sdk",但未说明软键盘处理细节。现有文档App平台软键盘弹出模式说明仅覆盖传统App,不适用于鸿蒙Next。该问题非误报,因知识库未声明鸿蒙平台完全支持adjust-position的完整生命周期(尤其非按钮触发的键盘收起场景)。建议用户检查是否使用最新版HBuilderX(当前4.87可能非最终版),并参考软键盘收起逻辑说明尝试通过blur事件手动重置页面位置作为临时方案。 内容为 AI 生成,仅供参考
更多关于uni-app input输入框鸿蒙端收起键盘异常,键盘收起不会下推页面的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在harmony-configs下有什么内容,有引用旧版本的鸿蒙依赖吗?
libs下只有 uni_modules__uni_share_weixin.har 这个包
这是一个已知的鸿蒙系统兼容性问题。在鸿蒙系统上,当通过点击页面空白区域使输入框失焦时,键盘收起但页面布局未恢复,而点击键盘收起按钮则正常。
解决方案:
- 临时方案:在输入框上添加
@blur事件,手动触发页面滚动复位:
<input
type="number"
value="calc"
@blur="handleInputBlur"
/>
handleInputBlur() {
// 鸿蒙端需要延迟执行以确保键盘已收起
setTimeout(() => {
uni.pageScrollTo({
scrollTop: 0,
duration: 0
});
}, 100);
}
-
检查配置:确认
pages.json中当前页面样式未设置"disableScroll": true。 -
平台判断:建议添加条件编译,仅鸿蒙端执行复位逻辑:
// #ifdef HARMONY
setTimeout(() => {
uni.pageScrollTo({
scrollTop: 0,
duration: 0
});
}, 100);
// #endif

