Skip to content

x-keyboard-s 软键盘

软键盘高度监听、收起键盘、读取当前输入框光标/选区。函数与类型均加 x 前缀,避免与官方同名冲突。一次性 API 使用 DCloud success / fail / complete

兼容性

HarmonyiOSAndroidWEB微信小程序
支持支持支持支持支持

鸿蒙端 xGetSelectedTextRange 无法读取系统输入框选区,会走 fail 1005

调用

ts
import {
  xOnKeyboardHeightChange,
  xOffKeyboardHeightChange,
  xHideKeyboard,
  xGetSelectedTextRange,
  XHideKeyboardOptions,
  XGetSelectedTextRangeOptions
} from "@/uni_modules/x-keyboard-s"

const listenId = xOnKeyboardHeightChange((res) => {
  console.log(res.height)
})

xHideKeyboard({
  success: (res) => {
    console.log(res.errMsg)
  }
} as XHideKeyboardOptions)

xGetSelectedTextRange({
  success: (res) => {
    console.log(res.start, res.end)
  },
  fail: (err) => {
    console.log(err.errCode, err.errMsg)
  }
} as XGetSelectedTextRangeOptions)

xOffKeyboardHeightChange(listenId)

方法

名称说明
xOnKeyboardHeightChange监听键盘高度变化,返回监听 id
xOffKeyboardHeightChange移除监听;不传 id 则移除本插件全部监听
xHideKeyboard收起软键盘
xGetSelectedTextRange读取当前获焦输入框的光标/选区,仅 focus 时有效

结果

XKeyboardHeightChangeResult.height 为逻辑像素,收起时为 0

XGetSelectedTextRangeResultstart / end 为字符下标。

错误码:1001 系统错误,1002 参数错误,1005 当前没有获焦的输入框,1008 当前平台不支持。

平台差异

Android

  • 高度:根视图 OnGlobalLayoutListener + 可视区域差值,再除以 density。
  • 收起:InputMethodManager.hideSoftInputFromWindow
  • 选区:当前 focus 的 TextView / EditText

iOS

  • 高度:keyboardWillChangeFrame
  • 收起:endEditing
  • 选区:当前 first responder 的 UITextInput

HarmonyOS

  • 高度:window.on('keyboardHeightChange'),px 转 vp。
  • 收起:inputMethod.getController().hideSoftKeyboard / stopInputSession
  • 选区:无全局可读选区,fail 1005

Web

  • 高度:visualViewportwindow.innerHeight 差值。
  • 收起:document.activeElement.blur()
  • 选区:当前 input / textareaselectionStart / selectionEnd

微信小程序

  • 直接转发 wx.onKeyboardHeightChange / wx.offKeyboardHeightChange / wx.hideKeyboard / wx.getSelectedTextRange

版本

版权归 https://xui.tmui.design 你不得修改及二次开发,仅供 TMUI4 会员商用使用。不得转给非 VIP 会员使用,一经查实数倍赔偿,并追究法律责任。

更新日志

1.0.0(2026-08-16)

  • 新增 x-keyboard-s:xOnKeyboardHeightChange、xOffKeyboardHeightChange、xHideKeyboard、xGetSelectedTextRange。
最近更新