1# Introduction to IME Kit
2
3IME 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.
4
5
6## When to Use
7
8IME 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.
9
10
11## Working Principles
12
13![Input method framework](./figures/input-method-framework.png)
14
15## Features
16
17- Input method:
18
19  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.
20
21- Custom text input box:
22
23  Can be bound to an input method and implement operations such as typing, deleting, selecting text and moving the cursor.
24
25
26## Available Capabilities
27
28- 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.
29
30- 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.
31
32- 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.
33
34
35## Related Kits
36
37ArkUI: 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.
38
39
40## Constraints
41
42For 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.
43
44
45## IME Kit API References
46
47- [inputMethodEngine](../reference/apis-ime-kit/js-apis-inputmethodengine.md)
48
49- [inputMethod](../reference/apis-ime-kit/js-apis-inputmethod.md)
50
51- [InputMethodExtensionAbility](../reference/apis-ime-kit/js-apis-inputmethod-extension-ability.md)
52
53- [InputMethodExtensionContext](../reference/apis-ime-kit/js-apis-inputmethod-extension-context.md)
54
55- [inputMethodList](../reference/apis-ime-kit/js-apis-inputmethodlist.md)
56
57- [InputMethodSubtype](../reference/apis-ime-kit/js-apis-inputmethod-subtype.md)
58
59- [inputMethod.Panel](../reference/apis-ime-kit/js-apis-inputmethod-panel.md)
60