Skip to content

Keyboard API

The Keyboard API provides functionality for handling keyboard events and managing keyboard state in Acode plugins. It allows you to detect keyboard visibility, respond to keyboard events, and manage keyboard-related behaviors.

Usage

js
const keyboard = acode.require('keyboard');

Events

The keyboard module emits the following events that you can listen to:

  • key - Triggered when a keyboard key is pressed
  • keyboardShow - Triggered when the soft keyboard becomes visible
  • keyboardHide - Triggered when the soft keyboard is hidden
  • keyboardShowStart - Triggered when the soft keyboard starts to show
  • keyboardHideStart - Triggered when the soft keyboard starts to hide

Methods

on(eventName, callback)

Add an event listener for keyboard events.

js
keyboard.on('keyboardShow', () => {
		// Handle keyboard show
		console.log('Keyboard is now visible');
});

keyboard.on('key', (event) => {
		// Handle key press
		if (event.key === 'Enter' && event.ctrlKey) {
				console.log('Ctrl+Enter pressed');
		}
});

Parameters:

  • eventName (string) - Name of the event to listen for ('key', 'keyboardShow', 'keyboardHide', etc.)
  • callback (Function) - Function to execute when the event occurs

off(eventName, callback)

Remove an event listener.

js
const keyboardCallback = () => {
		console.log('Keyboard shown');
};

// Add listener
keyboard.on('keyboardShow', keyboardCallback);

// Remove listener
keyboard.off('keyboardShow', keyboardCallback);

Parameters:

  • eventName (string) - Name of the event to remove listener from
  • callback (Function) - The callback function to remove

escKey State

The keyboard API includes an escKey state that tracks whether the Escape key is currently pressed:

js
// Check if Escape key is pressed
if (keyboard.escKey) {
		console.log('Escape key is pressed');
}

Example Plugin

Here's a complete example of using the keyboard API in an Acode plugin:

js
class KeyboardPlugin {
		constructor() {
				const keyboard = acode.require('keyboard');

				// Add keyboard show/hide listeners
				keyboard.on('keyboardShow', () => {
						acode.alert('Keyboard shown');
				});

				keyboard.on('keyboardHide', () => {
						acode.alert('Keyboard hidden');
				});

				// Listen for Ctrl+S shortcut
				keyboard.on('key', (e) => {
						if (e.key === 's' && e.ctrlKey) {
								acode.alert('Saving file...');
						}
				});
		}
}

if (window.acode) {
		const acodePlugin = new KeyboardPlugin();
		acode.setPluginInit("keyboard-example", (baseUrl, $page, { cacheFile, cacheFileUrl }) => {
				if (!acodePlugin.initialized) {
						acodePlugin.initialized = true;
						// Initialize plugin
				}
		});
}

This example demonstrates listening for keyboard visibility changes and implementing custom keyboard shortcuts in an Acode plugin.

Released under the MIT License.