1e41f4b71Sopenharmony_ci# Introduction to IME Kit
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciIME Kit is responsible for establishing a communication channel between the application in which the text input box is located and the input method application, to ensure that the two work together to provide text input, and also enables system applications to manage the input method application.
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci
6e41f4b71Sopenharmony_ci## When to Use
7e41f4b71Sopenharmony_ci
8e41f4b71Sopenharmony_ciIME Kit provides two types of APIs: input method framework APIs and input method service APIs. With these APIs, you can develop and manage an input method and implement a custom text input box.
9e41f4b71Sopenharmony_ci
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## Working Principles
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci![Input method framework](./figures/input-method-framework.png)
14e41f4b71Sopenharmony_ci
15e41f4b71Sopenharmony_ci## Features
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci- Input method:
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ci  Comes with three types of panels: fixed, floating, and status bar. One input method can be deployed across different device types, such as mobile phones and tablets.
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci- Custom text input box:
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ci  Can be bound to an input method and implement operations such as typing, deleting, selecting text and moving the cursor.
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ci
26e41f4b71Sopenharmony_ci## Available Capabilities
27e41f4b71Sopenharmony_ci
28e41f4b71Sopenharmony_ci- The APIs related to the input method service are provided for input methods. You can use these APIs to create a soft keyboard window, insert or delete characters, select text, and listen for physical keyboard key events.
29e41f4b71Sopenharmony_ci
30e41f4b71Sopenharmony_ci- The APIs related to the input method framework are provided for custom text input boxes. You can use these APIs to bind the text input box with an input method and implement operations such as typing, deleting, selecting text and moving the cursor.
31e41f4b71Sopenharmony_ci
32e41f4b71Sopenharmony_ci- APIs are also provided for system applications to manage input methods. For example, they can be used to display or hide the soft keyboard, switch between input methods, and obtain the list of input methods.
33e41f4b71Sopenharmony_ci
34e41f4b71Sopenharmony_ci
35e41f4b71Sopenharmony_ci## Related Kits
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ciArkUI: With respect to soft keyboards and custom text input boxes, IME Kit can use some components, events, animations, and state management capabilities provided by ArkUI, for example, the **\<Text>** and **\<Button>** components and the **onClick** event.
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci
40e41f4b71Sopenharmony_ci## Constraints
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_ciFor the system API for switching between input method s, the system permission is required. Some APIs can be called only by the current input method application.
43e41f4b71Sopenharmony_ci
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci## IME Kit API References
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_ci- [inputMethodEngine](../reference/apis-ime-kit/js-apis-inputmethodengine.md)
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ci- [inputMethod](../reference/apis-ime-kit/js-apis-inputmethod.md)
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci- [InputMethodExtensionAbility](../reference/apis-ime-kit/js-apis-inputmethod-extension-ability.md)
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci- [InputMethodExtensionContext](../reference/apis-ime-kit/js-apis-inputmethod-extension-context.md)
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci- [inputMethodList](../reference/apis-ime-kit/js-apis-inputmethodlist.md)
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci- [InputMethodSubtype](../reference/apis-ime-kit/js-apis-inputmethod-subtype.md)
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci- [inputMethod.Panel](../reference/apis-ime-kit/js-apis-inputmethod-panel.md)
60