@capacitor/keyboard
Keyboard API 提供了键盘显示与可见性控制功能,并能在键盘显示和隐藏时进行事件追踪。
安装
npm install @capacitor/keyboard
npx cap sync
示例
import { Keyboard } from '@capacitor/keyboard';
Keyboard.addListener('keyboardWillShow', info => {
console.log('keyboard will show with height:', info.keyboardHeight);
});
Keyboard.addListener('keyboardDidShow', info => {
console.log('keyboard did show with height:', info.keyboardHeight);
});
Keyboard.addListener('keyboardWillHide', () => {
console.log('keyboard will hide');
});
Keyboard.addListener('keyboardDidHide', () => {
console.log('keyboard did hide');
});
配置
在 iOS 上,键盘可以通过以下选项进行配置:
| 属性 | 类型 | 描述 | 默认值 | 自版本 |
|---|---|---|---|---|
resize | | 配置键盘出现时应用的调整方式。仅适用于 iOS。 | native | 1.0.0 |
style | | 如果您的应用不支持深色/浅色主题切换,可以覆盖键盘样式。如果未设置,键盘样式将取决于设备外观。仅适用于 iOS。 | 1.0.0 | |
resizeOnFullScreen | boolean | Android 存在一个错误,当应用处于全屏模式时(例如使用 StatusBar 插件覆盖状态栏),键盘无法调整 WebView 的大小。将此设置设为 true 会应用一个变通方案,即使应用处于全屏模式也能调整 WebView 的大小。仅适用于 Android | 1.1.0 |
配置示例
在 capacitor.config.json 中:
{
"plugins": {
"Keyboard": {
"resize": "body",
"style": "DARK",
"resizeOnFullScreen": true
}
}
}
在 capacitor.config.ts 中:
/// <reference types="@capacitor/keyboard" />
import { CapacitorConfig } from '@capacitor/cli';
import { KeyboardResize, KeyboardStyle } from '@capacitor/keyboard';
const config: CapacitorConfig = {
plugins: {
Keyboard: {
resize: KeyboardResize.Body,
style: KeyboardStyle.Dark,
resizeOnFullScreen: true,
},
},
};
export default config;
与 cordova-plugin-ionic-keyboard 的兼容性
为了保持与 cordova-plugin-ionic-keyboard 的兼容性,以下事件也可以通过 window.addEventListener 监听:
keyboardWillShowkeyboardDidShowkeyboardWillHidekeyboardDidHide
API
show()
show() => Promise<void>
显示键盘。
此方法仅适用于 Android。
自版本: 1.0.0
hide()
hide() => Promise<void>
隐藏键盘。
自版本: 1.0.0
setAccessoryBarVisible(...)
setAccessoryBarVisible(options: { isVisible: boolean; }) => Promise<void>
设置键盘上的辅助栏是否可见。对于简短的表单(登录、注册等),建议禁用辅助栏以提供更简洁的用户界面。
此方法仅适用于 iPhone 设备。
| 参数 | 类型 |
|---|---|
options | { isVisible: boolean; } |
自版本: 1.0.0
setScroll(...)
setScroll(options: { isDisabled: boolean; }) => Promise<void>
通过编程方式启用或禁用 WebView 滚动。
此方法仅适用于 iOS。
| 参数 | 类型 |
|---|---|
options | { isDisabled: boolean; } |
自版本: 1.0.0
setStyle(...)
setStyle(options: KeyboardStyleOptions) => Promise<void>
通过编程方式设置键盘样式。
此方法仅适用于 iOS。
| 参数 | 类型 |
|---|---|
options | |
自版本: 1.0.0
setResizeMode(...)
setResizeMode(options: KeyboardResizeOptions) => Promise<void>
通过编程方式设置调整模式。
此方法仅适用于 iOS。
| 参数 | 类型 |
|---|---|
options | |
自版本: 1.0.0
--------------------### getResizeMode()
getResizeMode() => Promise<KeyboardResizeOptions>
获取当前设置的键盘显示时界面调整模式。
此方法仅在 iOS 上受支持。
返回值:
Promise<KeyboardResizeOptions>
自版本: 4.0.0
addListener('keyboardWillShow', ...)
addListener(eventName: 'keyboardWillShow', listenerFunc: (info: KeyboardInfo) => void) => Promise<PluginListenerHandle>
监听键盘即将显示的事件。
在 Android 上,keyboardWillShow 和 keyboardDidShow 几乎同时触发。
| 参数 | 类型 |
|---|---|
eventName | 'keyboardWillShow' |
listenerFunc | |
返回值:
Promise<PluginListenerHandle>
自版本: 1.0.0
addListener('keyboardDidShow', ...)
addListener(eventName: 'keyboardDidShow', listenerFunc: (info: KeyboardInfo) => void) => Promise<PluginListenerHandle>
监听键盘已显示的事件。
在 Android 上,keyboardWillShow 和 keyboardDidShow 几乎同时触发。
| 参数 | 类型 |
|---|---|
eventName | 'keyboardDidShow' |
listenerFunc | |
返回值:
Promise<PluginListenerHandle>
自版本: 1.0.0
addListener('keyboardWillHide', ...)
addListener(eventName: 'keyboardWillHide', listenerFunc: () => void) => Promise<PluginListenerHandle>
监听键盘即将隐藏的事件。
在 Android 上,keyboardWillHide 和 keyboardDidHide 几乎同时触发。
| 参数 | 类型 |
|---|---|
eventName | 'keyboardWillHide' |
listenerFunc | () => void |
返回值:
Promise<PluginListenerHandle>
自版本: 1.0.0
addListener('keyboardDidHide', ...)
addListener(eventName: 'keyboardDidHide', listenerFunc: () => void) => Promise<PluginListenerHandle>
监听键盘已隐藏的事件。
在 Android 上,keyboardWillHide 和 keyboardDidHide 几乎同时触发。
| 参数 | 类型 |
|---|---|
eventName | 'keyboardDidHide' |
listenerFunc | () => void |
返回值:
Promise<PluginListenerHandle>
自版本: 1.0.0
removeAllListeners()
removeAllListeners() => Promise<void>
移除此插件的所有原生监听器。
自版本: 1.0.0
接口
KeyboardStyleOptions
| 属性 | 类型 | 描述 | 默认值 | 自版本 |
|---|---|---|---|---|
style | | 键盘的样式。 | KeyboardStyle.Default | 1.0.0 |
KeyboardResizeOptions
| 属性 | 类型 | 描述 | 自版本 |
|---|---|---|---|
mode | | 键盘出现时用于调整界面元素的模式。 | 1.0.0 |
PluginListenerHandle
| 属性 | 类型 |
|---|---|
remove | () => Promise<void> |
KeyboardInfo
| 属性 | 类型 | 描述 | 自版本 |
|---|---|---|---|
keyboardHeight | number | 键盘的高度。 | 1.0.0 |