HarmonyOS 鸿蒙Next webview已禁用系统键盘弹出,TextInput还是会唤起
HarmonyOS 鸿蒙Next webview已禁用系统键盘弹出,TextInput还是会唤起
项目中需要webview加载H5页面,前端H5已经禁用TextInput唤起系统键盘,现在点击TextInput还是会唤起系统键盘
2 回复
改变焦点状态就不会自动弹窗键盘,
这边是唤起自定义键盘的demo,反正失去焦点事件就不会弹出系统键盘,仅供参考
```
// xxx.ets
[@Entry](/user/Entry)
[@Component](/user/Component)
struct TSPage {
controller: TextInputController = new TextInputController();
@State inputValue: string = '';
@State isShowSystemKeyboard: boolean = false;
@State threeButtonColor: string = '#90EE90';
// 自定义键盘组件
@Builder CustomKeyboardBuilder() {
Column() {
Button('x')
.onClick(() => {
// 关闭自定义键盘
this.controller.stopEditing();
// this.isShowSystemKeyboard = true;
});
Button('中文键盘')
.onClick(() => {
focusControl.requestFocus('111');
this.isShowSystemKeyboard = !this.isShowSystemKeyboard;
})
.margin(10)
.border({ width: 1 });
Grid() {
ForEach([1, 2, 3, 400, 5, 6, 7, 800, 9, '*', 0, '#', 1, 2, 3, 4, 5, 6, 7, 8, 9], (item: number | string) => {
GridItem() {
Button(item + '')
.width('100%')
.onClick(() => {
this.inputValue += item;
})
.backgroundColor(Color.Gray);
}
});
}
.id('TextInput')
.columnsTemplate('1fr 1fr 1fr 1fr')
.rowsTemplate('1fr 1fr 1fr 1fr')
.width('100%')
.height('200vp')
.maxCount(4)
.columnsGap(10)
.rowsGap(10)
.padding(5);
}
.focusable(true)
.width('100%')
.backgroundColor(Color.White);
}
build() {
Column() {
TextInput({ controller: this.controller, text: this.inputValue })
// 添加key属性让焦点转移到指定组件上
.key('111')
.backgroundColor(this.threeButtonColor)
// 绑定自定义键盘
.customKeyboard(this.isShowSystemKeyboard ? undefined : this.CustomKeyboardBuilder())
.margin(10)
.border({ width: 1 })
.onFocus(() => {
this.threeButtonColor = '#FF0000';
})
.onBlur(() => {
this.threeButtonColor = '#90EE90';
});
}
}
}
针对您提到的HarmonyOS鸿蒙系统中,Next webview已禁用系统键盘弹出,但TextInput还是会唤起的问题,这通常涉及到系统UI组件的默认行为与webview设置之间的交互。在HarmonyOS开发中,webview组件可能会继承或触发一些系统级的默认行为,即便在代码中进行了相应设置。
解决此类问题,首先需要确认webview的键盘弹出设置是否全面且正确。检查webview的相关配置,确保没有遗漏任何可能影响键盘行为的属性设置。此外,由于HarmonyOS不断更新迭代,系统行为可能有所变化,因此建议查阅最新的官方文档,确认是否有关于webview键盘行为变更的说明。
同时,考虑是否存在其他系统级或应用级的设置影响了键盘的弹出行为。例如,检查应用的全局设置或特定页面的配置,确保它们不会覆盖webview的设置。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。在这里,您可以获得更专业的技术支持,帮助您解决HarmonyOS开发中的各种问题。