HarmonyOS 鸿蒙Next键盘关闭问题

发布于 1周前 作者 yibo5220 来自 鸿蒙OS

HarmonyOS 鸿蒙Next键盘关闭问题 一个flutter页面或是webview页面打开弹起的键盘,手势返回时,如何关闭键盘

2 回复

使用下面参考文档示例2的demo,把// PageTwo.ets换成下面的,试一下。 跳转到PageTwo页面后 点击 keyboardHeightChange 开启监听软键盘高度

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-navigation-V5#示例2

// PageTwo.ets
import web_webview from '@ohos.web.webview';
import { inputMethod } from '@kit.IMEKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { window } from '@kit.ArkUI';

@Builder
export function PageTwoBuilder(name: string, param: Object) {
  PageTwo()
}

@Component
export struct PageTwo {
  @State keyBoardHeight: number = 0;
  pathStack: NavPathStack = new NavPathStack()
  webviewController: web_webview.WebviewController = new web_webview.WebviewController();
  private menuItems: Array<NavigationMenuItem> = [
    {
      value: "1",
      icon: 'resources/base/media/undo.svg',
    },
    {
      value: "2",
      icon: 'resources/base/media/redo.svg',
      isEnabled: false,
    },
    {
      value: "3",
      icon: 'resources/base/media/ic_public_ok.svg',
      isEnabled: true,
    }
  ]

  aboutToAppear(): void {

  }

  build() {
    NavDestination() {
      Column() {
        // web组件加载本地local1.html页面
        Web({ src: $rawfile('local1.html'), controller: this.webviewController }).height(50)
        Button('keyboardHeightChange', { stateEffect: true, type: ButtonType.Capsule })
          .width('80%')
          .height(40)
          .margin(20)
          .onClick(() => {
            window.getLastWindow(getContext()).then(lastWindow => {
              lastWindow.on('keyboardHeightChange', (data) => {
                this.keyBoardHeight = data
                console.info('keyBoardHeight: ' + data.toString())
              })
            }).catch((err: BusinessError) => {
              console.error('jjxs:Failed to enable the listener for keyboard height changes. Cause: ' + JSON.stringify(err));
            })
          })
        Button('pushPathByName', { stateEffect: true, type: ButtonType.Capsule })
          .width('80%')
          .height(40)
          .margin(20)
          .onClick(() => {
            this.pathStack.pushPathByName('pageOne', null)
          })
      }.width('100%').height('100%')
    }.title('pageTwo')
    .menus(this.menuItems)
    .onBackPressed(() => {
      if ( this.keyBoardHeight>0) {
        let inputMethodController = inputMethod.getController();
        inputMethodController.hideTextInput()
        return true
      }
      this.pathStack.pop()
      return true
    })
    .onReady((context: NavDestinationContext) => {
      this.pathStack = context.pathStack;
      console.log("current page config info is " + JSON.stringify(context.getConfigInRouteMap()))
    })
  }
}

更多关于HarmonyOS 鸿蒙Next键盘关闭问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS(鸿蒙)Next键盘关闭问题,以下提供直接相关的解决方案:

在HarmonyOS设备上关闭Next键盘,可以尝试以下几种方法:

  1. 系统设置关闭

    • 进入“设置”应用。
    • 搜索“键盘”或“输入法”选项。
    • 在输入法管理中,找到并点击进入Next键盘的设置。
    • 寻找“启用”或“默认输入法”选项,将Next键盘取消勾选或更改为其他输入法,以达到关闭Next键盘的目的。
  2. 应用内关闭

    • 在需要输入文字的应用中,长按输入框,通常会弹出输入法选择的菜单。
    • 在弹出的菜单中,选择其他已安装的输入法,以替换Next键盘。
  3. 强制停止服务

    • 进入“设置”中的“应用和服务”或“应用管理”。
    • 搜索Next键盘或相关输入法应用。
    • 点击进入应用详情,选择“强制停止”来暂时关闭Next键盘的服务。

请注意,以上方法可能因不同的HarmonyOS版本和设备型号而略有差异。如果以上方法未能解决您的问题,可能是由于系统或应用的特定问题,此时建议直接联系设备制造商或访问官网客服获取进一步帮助。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部