# inputmethod_inputmethod_proxy_capi.h

#### 概述

提供使用输入法的方法，可以向输入法应用发送请求和通知，适用于需要控制输入法显示、隐藏、配置变更通知等功能的应用开发场景。

**引用文件：** <inputmethod/inputmethod\_inputmethod\_proxy\_capi.h>

**库：** libohinputmethod.so

**系统能力：** SystemCapability.MiscServices.InputMethodFramework

**起始版本：** 12

**相关模块：** InputMethod

#### 汇总

#### 结构体

| 名称 | typedef关键字 | 描述 |
| --- | --- | --- |
| InputMethod_InputMethodProxy | InputMethod_InputMethodProxy | 输入法代理对象。使用此对象可以用于调用使用输入法的方法。 |

#### 函数

| 名称 | 描述 |
| --- | --- |
| InputMethod_ErrorCode OH_InputMethodProxy_ShowKeyboard(InputMethod_InputMethodProxy *inputMethodProxy) | 显示键盘。 |
| InputMethod_ErrorCode OH_InputMethodProxy_ShowTextInput(InputMethod_InputMethodProxy *inputMethodProxy, InputMethod_AttachOptions *options) | 显示文本输入框。 |
| InputMethod_ErrorCode OH_InputMethodProxy_HideKeyboard(InputMethod_InputMethodProxy *inputMethodProxy) | 隐藏键盘。 |
| InputMethod_ErrorCode OH_InputMethodProxy_NotifySelectionChange(InputMethod_InputMethodProxy *inputMethodProxy, char16_t text[], size_t length, int start, int end) | 通知文本框选区变化。当输入框内文本内容、光标位置或选中文本发生变化时，通过此接口将变更信息通知给输入法应用。 |
| InputMethod_ErrorCode OH_InputMethodProxy_NotifyConfigurationChange(InputMethod_InputMethodProxy *inputMethodProxy,InputMethod_EnterKeyType enterKey, InputMethod_TextInputType textType) | 通知输入框配置变化。 |
| InputMethod_ErrorCode OH_InputMethodProxy_NotifyCursorUpdate(InputMethod_InputMethodProxy *inputMethodProxy, InputMethod_CursorInfo *cursorInfo) | 通知光标位置变化。 |
| InputMethod_ErrorCode OH_InputMethodProxy_SendPrivateCommand(InputMethod_InputMethodProxy *inputMethodProxy, InputMethod_PrivateCommand *privateCommand[], size_t size) | 发送私有数据命令。 |

#### 函数说明

#### OH\_InputMethodProxy\_ShowKeyboard()

```
InputMethod_ErrorCode OH_InputMethodProxy_ShowKeyboard(InputMethod_InputMethodProxy *inputMethodProxy)
```

**描述**

显示键盘。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| InputMethod_InputMethodProxy *inputMethodProxy | 表示指向InputMethod_InputMethodProxy实例的指针。inputMethodProxy由调用OH_InputMethodController_Attach获取。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| InputMethod_ErrorCode | 返回一个特定的错误码。 IME_ERR_OK - 表示成功。 IME_ERR_IMCLIENT - 输入法客户端错误。 IME_ERR_IMMS - 输入法服务错误。 IME_ERR_DETACHED - 未绑定输入法。 IME_ERR_NULL_POINTER - 非预期的空指针。 具体错误码可以参考InputMethod_ErrorCode。 |

#### OH\_InputMethodProxy\_ShowTextInput()

```
InputMethod_ErrorCode OH_InputMethodProxy_ShowTextInput(InputMethod_InputMethodProxy *inputMethodProxy, InputMethod_AttachOptions *options)
```

**描述**

显示文本输入框。

**起始版本：** 15

**参数：**

| 参数项 | 描述 |
| --- | --- |
| InputMethod_InputMethodProxy *inputMethodProxy | 表示指向InputMethod_InputMethodProxy实例的指针。inputMethodProxy由调用OH_InputMethodController_Attach获取。 |
| InputMethod_AttachOptions *options | 表示指向InputMethod_AttachOptions实例的指针，用于获取配置选项。 此接口中只需关注InputMethod_RequestKeyboardReason - 表示请求键盘输入的原因。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| InputMethod_ErrorCode | 返回一个特定的错误码。 IME_ERR_OK - 表示成功。 IME_ERR_IMCLIENT - 输入法客户端错误。 IME_ERR_IMMS - 输入法服务错误。 IME_ERR_DETACHED - 未绑定输入法。 IME_ERR_NULL_POINTER - 非预期的空指针。 具体错误码可以参考InputMethod_ErrorCode。 |

#### OH\_InputMethodProxy\_HideKeyboard()

```
InputMethod_ErrorCode OH_InputMethodProxy_HideKeyboard(InputMethod_InputMethodProxy *inputMethodProxy)
```

**描述**

隐藏键盘。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| InputMethod_InputMethodProxy *inputMethodProxy | 表示指向InputMethod_InputMethodProxy实例的指针。inputMethodProxy由调用OH_InputMethodController_Attach获取。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| InputMethod_ErrorCode | 返回一个特定的错误码。 IME_ERR_OK - 表示成功。 IME_ERR_IMCLIENT - 输入法客户端错误。 IME_ERR_IMMS - 输入法服务错误。 IME_ERR_DETACHED - 未绑定输入法。 IME_ERR_NULL_POINTER - 非预期的空指针。 具体错误码可以参考InputMethod_ErrorCode。 |

#### OH\_InputMethodProxy\_NotifySelectionChange()

```
InputMethod_ErrorCode OH_InputMethodProxy_NotifySelectionChange(InputMethod_InputMethodProxy *inputMethodProxy, char16_t text[], size_t length, int start, int end)
```

**描述**

通知文本框选区变化。当输入框内文本内容、光标位置或选中文本发生变化时，通过此接口将变更信息通知给输入法应用。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| InputMethod_InputMethodProxy *inputMethodProxy | 表示指向InputMethod_InputMethodProxy实例的指针。inputMethodProxy由调用OH_InputMethodController_Attach获取。 |
| text | 整个输入文本。 |
| size_t length | text参数的长度。最大长度为8K（最大长度限制为8192个字符（对应16384字节））。 |
| int start | 所选文本的起始位置。 |
| int end | 所选文本的结束位置。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| InputMethod_ErrorCode | 返回一个特定的错误码。 IME_ERR_OK - 表示成功。 IME_ERR_PARAMCHECK - 表示参数错误。 IME_ERR_IMCLIENT - 输入法客户端错误。 IME_ERR_IMMS - 输入法服务错误。 IME_ERR_DETACHED - 未绑定输入法。 IME_ERR_NULL_POINTER - 非预期的空指针。 具体错误码可以参考InputMethod_ErrorCode。 |

#### OH\_InputMethodProxy\_NotifyConfigurationChange()

```
InputMethod_ErrorCode OH_InputMethodProxy_NotifyConfigurationChange(InputMethod_InputMethodProxy *inputMethodProxy,InputMethod_EnterKeyType enterKey, InputMethod_TextInputType textType)
```

**描述**

通知输入框配置变化。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| InputMethod_InputMethodProxy *inputMethodProxy | 表示指向InputMethod_InputMethodProxy实例的指针。inputMethodProxy由调用OH_InputMethodController_Attach获取。 |
| InputMethod_EnterKeyType enterKey | 回车键类型。 |
| InputMethod_TextInputType textType | 输入框类型。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| InputMethod_ErrorCode | 返回一个特定的错误码。 IME_ERR_OK - 表示成功。 IME_ERR_PARAMCHECK - 表示参数错误。 IME_ERR_IMCLIENT - 输入法客户端错误。 IME_ERR_IMMS - 输入法服务错误。 IME_ERR_DETACHED - 未绑定输入法。 IME_ERR_NULL_POINTER - 非预期的空指针。 具体错误码可以参考InputMethod_ErrorCode。 |

#### OH\_InputMethodProxy\_NotifyCursorUpdate()

```
InputMethod_ErrorCode OH_InputMethodProxy_NotifyCursorUpdate(InputMethod_InputMethodProxy *inputMethodProxy, InputMethod_CursorInfo *cursorInfo)
```

**描述**

通知光标位置变化。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| InputMethod_InputMethodProxy *inputMethodProxy | 表示指向InputMethod_InputMethodProxy实例的指针。inputMethodProxy由调用OH_InputMethodController_Attach获取。 |
| InputMethod_CursorInfo *cursorInfo | 指向InputMethod_CursorInfo实例的指针。表示光标信息。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| InputMethod_ErrorCode | 返回一个特定的错误码。 IME_ERR_OK - 表示成功。 IME_ERR_PARAMCHECK - 表示参数错误。 IME_ERR_IMCLIENT - 输入法客户端错误。 IME_ERR_IMMS - 输入法服务错误。 IME_ERR_DETACHED - 未绑定输入法。 IME_ERR_NULL_POINTER - 非预期的空指针。 具体错误码可以参考InputMethod_ErrorCode。 |

#### OH\_InputMethodProxy\_SendPrivateCommand()

```
InputMethod_ErrorCode OH_InputMethodProxy_SendPrivateCommand(InputMethod_InputMethodProxy *inputMethodProxy, InputMethod_PrivateCommand *privateCommand[], size_t size)
```

**描述**

发送私有数据命令。

**起始版本：** 12

**参数：**

| 参数项 | 描述 |
| --- | --- |
| InputMethod_InputMethodProxy *inputMethodProxy | 表示指向InputMethod_InputMethodProxy实例的指针。inputMethodProxy由调用OH_InputMethodController_Attach获取。 |
| InputMethod_PrivateCommand *privateCommand[] | 私有命令, 定义在InputMethod_PrivateCommand，最大大小为32KB。 |
| size_t size | 私有命令数组的大小，最大为5。 |

**返回：**

| 类型 | 说明 |
| --- | --- |
| InputMethod_ErrorCode | 返回一个特定的错误码。 IME_ERR_OK - 表示成功。 IME_ERR_PARAMCHECK - 表示参数错误。 IME_ERR_IMCLIENT - 输入法客户端错误。 IME_ERR_IMMS - 输入法服务错误。 IME_ERR_DETACHED - 未绑定输入法。 IME_ERR_NULL_POINTER - 非预期的空指针。 具体错误码可以参考InputMethod_ErrorCode。 |