HarmonyOS 鸿蒙Next showSoftKeyboard一定要点击输入框才能唤起输入法吗?

HarmonyOS 鸿蒙Next showSoftKeyboard一定要点击输入框才能唤起输入法吗? 登陆界面账号框用的“下一个”回车样式,写了给按下后给密码输入框获焦,一直不出软件盘我还以为是我代码问题,用了示例代码发现就是不会呼出软键盘,于是找这个,然后发现描写要点击输入框才能使用这个接口,那有没有办法让软键盘不隐藏或者正常唤起。顺带一问,密码输入框获焦光标是默认不会亮吗?

8 回复

使用输入法框架提供的拉起键盘的能力,代码示例如下:

import inputMethod from '@ohos.inputmethod'
@Entry
@Component
struct TextInputExample2 {
  @State text: string = ''
  controller: TextInputController = new TextInputController()
  build() {
    Column() {
      TextInput({ placeholder: 'Please input your words.', controller: this.controller, text: " " })
        .onEditChange(isEditing => {
          console.log('foo' + isEditing)
          var InputMethodController = inputMethod.getInputMethodController();
          InputMethodController.showSoftKeyboard((err) => {
            if (err === undefined) {
              console.info('showSoftKeyboard success');
              this.controller.caretPosition(0)
            } else {
              console.error('showSoftKeyboard failed because : ' + JSON.stringify(err));
            }
          })
        })
     }
  }
}

更多关于HarmonyOS 鸿蒙Next showSoftKeyboard一定要点击输入框才能唤起输入法吗?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


要系统权限的,开发普通应用这个方法无效啊。

showSoftKeyboard是需要ohos.permission.CONNECT_IME_ABILITY权限的,而这个权限是system_core,非系统应用无法获取,所以这个API无法调用。你如果想唤起键盘,可以给TextInput设置一个key(“XXX”),然后通过模拟点击API:sendEventByKey(' XXX', 10, '弹出键盘'),这样就可以唤起键盘了。

好的,我试试,

基本信息
姓名:张三
职位:软件工程师
技能:Python, Java, C++

个人简介
本人从事软件开发多年,熟悉多种编程语言。乐于学习新技术,善于团队合作。

showSoftKeyboard failed because : {“code”:201,“message”:“the permissions check fails.”}, %{public}s

我就是这边解决不了才来论坛问的emmm,

在HarmonyOS(鸿蒙Next)中,showSoftKeyboard方法通常用于请求显示软键盘。默认情况下,软键盘的显示通常与输入框的焦点状态相关联,即当用户点击输入框时,系统会自动调用showSoftKeyboard来显示软键盘。

然而,是否需要点击输入框才能唤起输入法取决于具体的应用场景和实现方式。开发者可以通过编程方式在特定条件下主动调用showSoftKeyboard来显示软键盘,而不需要用户点击输入框。例如,可以在页面加载或某个事件触发时直接调用该方法来显示软键盘。

需要注意的是,调用showSoftKeyboard时,输入框必须已经获得焦点,否则软键盘可能无法正常显示。在某些情况下,开发者可能需要先调用requestFocus方法确保输入框获得焦点,然后再调用showSoftKeyboard

总之,是否一定要点击输入框才能唤起输入法取决于开发者的实现方式,可以通过编程主动调用showSoftKeyboard来显示软键盘,而不需要用户点击输入框。

回到顶部