提交 4adc1ec7 编写于 作者: H Hollokin

输入法框架API资料整理

Signed-off-by: NHollokin <taoyuxin2@huawei.com>
上级 c3cdd215
# InputMethodExtensionAbility
InputMethodExtensionAbility模块,提供生态输入法应用开发者通过InputMethodExtensionAbility、InputMethodExtensionContext接口创作输入法应用,并管理输入法应用生命周期。
开发者可通过继承本模块开发自己的输入法应用并管理输入法应用生命周期。
> **说明:**
>
> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> **说明:**<br/>本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
......@@ -37,7 +35,7 @@ Extension生命周期回调,在拉起Extension输入法应用时调用,执
**示例:**
```ts
```js
class InputMethodExt extends InputMethodExtensionAbility {
onCreate(want) {
console.log('onCreate, want:' + want.abilityName);
......@@ -56,7 +54,7 @@ Extension生命周期回调,在销毁输入法应用时回调,执行资源
**示例:**
```ts
```js
class InputMethodExt extends InputMethodExtensionAbility {
onDestroy() {
console.log('onDestroy');
......
......@@ -4,9 +4,7 @@ InputMethodExtensionContext模块是InputMethodExtensionAbility的上下文环
InputMethodExtensionContext模块提供InputMethodExtensionAbility具有的能力和接口,包括启动、停止、绑定、解绑Ability。
> **说明:**
>
> - 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> **说明:**<br/>本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
......@@ -18,7 +16,7 @@ import InputMethodExtensionContext from '@ohos.inputmethodextensioncontext';
在使用InputMethodExtensionContext的功能前,需要通过InputMethodExtensionAbility子类实例获取。
```ts
```js
import InputMethodExtensionAbility from '@ohos.inputmethodextensionability';
class MainAbility extends InputMethodExtensionAbility {
onCreate() {
......@@ -27,7 +25,7 @@ class MainAbility extends InputMethodExtensionAbility {
}
```
## InputMethodExtensionContext.destroy<sup>9+</sup>
## InputMethodExtensionContext.destroy
destroy(callback: AsyncCallback\<void>): void
......@@ -39,21 +37,21 @@ destroy(callback: AsyncCallback\<void>): void
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------------------- | ---- | ------------------------------------------------------------ |
| callback | AsyncCallback\<void> | 是 | 回调函数。当启动Ability成功,err为undefined;否则为错误对象。 |
| callback | AsyncCallback\<void> | 是 | 回调函数。当停止输入法应用自身成功时,err为undefined;否则为错误对象。 |
**示例:**
```ts
```js
this.context.destroy((err) => {
console.log('destroy result:' + JSON.stringify(err));
});
```
## InputMethodExtensionContext.destroy<sup>9+</sup>
## InputMethodExtensionContext.destroy
destroy(): Promise<void&gt;;
停止输入法应用自身。通过Promise返回结果
停止输入法应用自身。通过Promise异步回调
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
......@@ -61,11 +59,11 @@ destroy(): Promise<void&gt;;
| 类型 | 说明 |
| -------- | -------- |
| Promise<void&gt; | Promise对象,无返回结果的Promise对象。 |
| Promise<void&gt; | 无返回结果的Promise对象。 |
**示例:**
```ts
```js
this.context.destroy().then((data) => {
console.log('success:' + JSON.stringify(data));
}).catch((error) => {
......
# 输入法子类型
本模块提供对输入法子类型的属性管理
本模块提供对输入法子类型的属性管理
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
>
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> **说明:**<br/>本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
......@@ -12,11 +10,11 @@
import inputMethodEngine from '@ohos.inputMethodSubtype';
```
## InputMethodSubtype
## 属性
属性值。
**系统能力**以下各项对应的系统能力均为SystemCapability.MiscServices.InputMethodFramework
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
| 名称 | 参数类型 | 可读 | 可写 | 必选 | 说明 |
| -------- | -------- | -------- | -------- | -------- | -------- |
......@@ -24,7 +22,7 @@ import inputMethodEngine from '@ohos.inputMethodSubtype';
| name | string | 是 | 否 | 是 | 输入法子类型的名字。 |
| id | string | 是 | 否 | 是 | 输入法子类型的id。 |
| mode | string | 是 | 否 | 否 | 输入法子类型的模式,包括upper(大写)和lower(小写)。 |
| locale | string | 是 | 否 | 是 | 输入法子类型的locale。 |
| locale | string | 是 | 否 | 是 | 输入法子类型的方言版本。 |
| language | string | 是 | 否 | 是 | 输入法子类型的语言。 |
| icon | string | 是 | 否 | 否 | 输入法子类型的图标。 |
| iconId | number | 是 | 否 | 否 | 输入法子类型的图标id。 |
......
......@@ -2,9 +2,7 @@
本模块提供对输入法框架的管理,包括隐藏输入法、查询已安装的输入法列表和显示输入法选择对话框。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
>
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> **说明:**<br/>本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
......@@ -13,44 +11,44 @@
import inputMethod from '@ohos.inputmethod';
```
## inputMethod<sup>8+</sup>
## 常量<sup>8+</sup>
常量值。
**系统能力**以下各项对应的系统能力均为SystemCapability.MiscServices.InputMethodFramework
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| MAX_TYPE_NUM | number | 是 | 否 | 可支持的最大输入法个数。 |
| EXCEPTION_PERMISSION<sup>9+</sup> | number | 是 | 否 | 错误码。详见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md),下同 |
| EXCEPTION_PARAMCHECK<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_UNSUPPORTED<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_PACKAGEMANAGER<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_IMENGINE<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_IMCLIENT<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_KEYEVENT<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_CONFPERSIST<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_CONTROLLER<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_SETTINGS<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_IMMS<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| EXCEPTION_OTHERS<sup>9+</sup> | number | 是 | 否 | 错误码。 |
| 参数名 | 参数类型 | 常量值 | 说明 |
| -------- | -------- | -------- | -------- |
| MAX_TYPE_NUM | number | 128 | 可支持的最大输入法个数。 |
| EXCEPTION_PERMISSION<sup>9+</sup> | number | 201 | 错误码类型。详见[输入法框架错误码](../errorcodes/errcode-inputmethod-framework.md),下同 |
| EXCEPTION_PARAMCHECK<sup>9+</sup> | number | 401 | 错误码类型 |
| EXCEPTION_UNSUPPORTED<sup>9+</sup> | number | 801 | 错误码类型 |
| EXCEPTION_PACKAGEMANAGER<sup>9+</sup> | number | 12800001 | 错误码类型 |
| EXCEPTION_IMENGINE<sup>9+</sup> | number | 12800002 | 错误码类型 |
| EXCEPTION_IMCLIENT<sup>9+</sup> | number | 12800003 | 错误码类型 |
| EXCEPTION_KEYEVENT<sup>9+</sup> | number | 12800004 | 错误码类型 |
| EXCEPTION_CONFPERSIST<sup>9+</sup> | number | 12800005 | 错误码类型 |
| EXCEPTION_CONTROLLER<sup>9+</sup> | number | 12800006 | 错误码类型 |
| EXCEPTION_SETTINGS<sup>9+</sup> | number | 12800007 | 错误码类型 |
| EXCEPTION_IMMS<sup>9+</sup> | number | 12800008 | 错误码类型 |
| EXCEPTION_OTHERS<sup>9+</sup> | number | 12899999 | 错误码类型 |
## InputMethodProperty<sup>8+</sup>
输入法应用属性。
**系统能力**以下各项对应的系统能力均为SystemCapability.MiscServices.InputMethodFramework
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
| packageName<sup>(deprecated)</sup> | string | 是 | 否 | 包名。从API8开始支持,从API9开始废弃,建议使用name替代 |
| methodId<sup>(deprecated)</sup> | string | 是 | 否 | Ability名。从API8开始支持,从API9开始废弃,建议使用id替代 |
| name<sup>9+</sup> | string | 是 | 否 | 包名。 |
| id<sup>9+</sup> | string | 是 | 否 | Ability名。 |
| label<sup>9+</sup> | string | 是 | 否 | 输入法标签,非必填项。|
| icon<sup>9+</sup> | string | 是 | 否 | 输入法图标,非必填项。 |
| iconId<sup>9+</sup> | number | 是 | 否 | 输入法图标id,非必填项。 |
| extra<sup>9+</sup> | object | 是 | 否 | 输入法其他信息。 |
| packageName<sup>(deprecated)</sup> | string | 是 | 否 | 输入法包名。<br />**说明:**从API8开始支持,从API9开始废弃,建议使用name替代。 |
| methodId<sup>(deprecated)</sup> | string | 是 | 否 | 输入法唯一标识。<br />**说明:**从API8开始支持,从API9开始废弃,建议使用id替代。 |
| name<sup>9+</sup> | string | 是 | 否 | 输入法内部名称。 |
| id<sup>9+</sup> | string | 是 | 否 | 输入法唯一标识。 |
| label<sup>9+</sup> | string | 是 | 否 | 输入法对外显示名称。 |
| icon<sup>9+</sup> | string | 是 | 否 | 输入法图标数据。 |
| iconId<sup>9+</sup> | number | 是 | 否 | 输入法图标资源号。 |
| extra<sup>9+</sup> | object | 是 | 否 | 输入法扩展信息。 |
## inputMethod.getController<sup>9+</sup>
......@@ -467,7 +465,7 @@ getInputMethodController(): InputMethodController
获取客户端实例[InputMethodController](#inputmethodcontroller)
> **说明:**
> **说明:** <br/>
> 从API version 6开始支持,从API version 9开始废弃, 建议使用[getController()](#inputmethodgetcontroller9)替代
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
......@@ -490,8 +488,7 @@ getInputMethodSetting(): InputMethodSetting
获取客户端设置实例[InputMethodSetting](#inputmethodsetting8)
> **说明:**
> 从API version 6开始支持,从API version 9开始废弃, 建议使用[getSetting()](#inputmethodgetsetting9)替代
> **说明:**<br />从API version 6开始支持,从API version 9开始废弃, 建议使用[getSetting()](#inputmethodgetsetting9)替代。
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
......@@ -646,7 +643,7 @@ showSoftKeyboard(): Promise&lt;void&gt;
| 类型 | 说明 |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
**错误码:**
......@@ -718,7 +715,7 @@ hideSoftKeyboard(): Promise&lt;void&gt;
| 类型 | 说明 |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
**错误码:**
......@@ -745,7 +742,7 @@ stopInput(callback: AsyncCallback&lt;boolean&gt;): void
隐藏输入法。使用callback异步回调。
> **说明:**
> **说明:** <br/>
> 从API version 6开始支持,从API version 9开始废弃, 建议使用[stopInputSession()](#stopinputsession9)替代
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
......@@ -778,7 +775,7 @@ stopInput(): Promise&lt;boolean&gt;
隐藏输入法。使用promise异步回调。
> **说明:**
> **说明:** <br/>
> 从API version 6开始支持,从API version 9开始废弃, 建议使用[stopInputSession()](#stopinputsession9)替代
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
......@@ -807,7 +804,7 @@ InputMethodController.stopInput().then((result) => {
下列API示例中都需使用[getSetting](#inputmethodgetsetting9)回调获取到InputMethodSetting实例,再通过此实例调用对应方法。
### on('imeChange')<a name="imeChange"></a><sup>9+</sup>
### on('imeChange')<sup>9+</sup>
on(type: 'imeChange', callback: (inputMethodProperty: InputMethodProperty, inputMethodSubtype: InputMethodSubtype) => void): void
......@@ -1184,7 +1181,7 @@ listInputMethod(callback: AsyncCallback&lt;Array&lt;InputMethodProperty&gt;&gt;)
查询已安装的输入法列表。使用callback异步回调。
> **说明:**
> **说明:** <br/>
> 从API version 8开始支持,从API version 9开始废弃, 建议使用[getInputMethods](#getinputmethods9)替代
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
......@@ -1213,7 +1210,7 @@ listInputMethod(): Promise&lt;Array&lt;InputMethodProperty&gt;&gt;
查询已安装的输入法列表。使用promise异步回调。
> **说明:**
> **说明:** <br/>
> 从API version 8开始支持,从API version 9开始废弃, 建议使用[getInputMethods](#getinputmethods9-1)替代
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
......@@ -1240,7 +1237,7 @@ displayOptionalInputMethod(callback: AsyncCallback&lt;void&gt;): void
显示输入法选择对话框。使用callback异步回调。
> **说明:**
> **说明:** <br/>
> 从API version 8开始支持,从API version 9开始废弃, 建议使用[showOptionalInputMethods()](#showoptionalinputmethods9)替代
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
......@@ -1269,7 +1266,7 @@ displayOptionalInputMethod(): Promise&lt;void&gt;
显示输入法选择对话框。使用promise异步回调。
> **说明:**
> **说明:** <br/>
> 从API version 8开始支持,API version 9开始废弃, 建议使用[showOptionalInputMethods()](#showoptionalinputmethods9-1)替代
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
......@@ -1278,7 +1275,7 @@ displayOptionalInputMethod(): Promise&lt;void&gt;
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;void&gt; | Promise对象。无返回结果的Promise对象。 |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
**示例:**
......
......@@ -2,168 +2,164 @@
## 12800001 包管理服务异常
**错误信息**
**错误信息**<br/>
Package manager error.
**错误描述**
**错误描述**<br/>
当依赖包管理接口来获取一些信息失败时,系统会报此错误码。
**可能原因**
**可能原因**<br/>
获取输入法及子类型的时候,由于依赖包管理接口而导致异常时会报错。
调用getInputMethods、listCurrentInputMethodSubtype等接口获取输入法及子类型的时候,由于依赖包管理QueryExtensionAbilityInfos接口而导致异常时会报错。
**处理步骤**
**处理步骤**<br/>
1. 确认包管理服务是否正常。
2. 确认查询包信息接口是否正常。
1. 确认包管理服务是否正常。在日志中搜索401查看是否存在打印found service : 401。
2. 确认查询包信息接口是否正常。在日志中搜索“QueryExtensionAbilityInfos”,查看相关打印中是否存在失败字样。
3. 解决方法:无。
## 12800002 输入法应用异常
**错误信息**
**错误信息**<br/>
Input method engine error.
**错误描述**
**错误描述**<br/>
用户调用输入法应用接口失败时,系统会报此错误码。
**可能原因**
**可能原因**<br/>
在执行显示键盘、隐藏键盘等操作时,由于输入法应用进程死亡导致操作失败时会报错
在执行显示键盘、隐藏键盘等操作时,由于输入法应用进程死亡导致操作失败时会报错
**处理步骤**
**处理步骤**<br/>
确认输入法应用进程正常
查看输入法应用进程是否正常。例如再次在普通应用(微信、联系人等第三方应用)中点击对话框看键盘能否被正常拉起
## 12800003 客户端应用异常
**错误信息**
**错误信息**<br/>
Input method client error.
**错误描述**
**错误描述**<br/>
客户端应用(编辑控件)调用失败时,系统会报此错误码。
三方应用(微信、设置、联系人等)的对话框等编辑控件调用显示键盘、隐藏键盘失败时,系统会报此错误码。
**可能原因**
**可能原因**<br/>
执行显示键盘或者隐藏键盘等操作时,找不到客户端的情况下会报错。
当三方应用通过点击对话框去调用显示键盘、隐藏键盘功能失败时会报错。
**处理步骤**
**处理步骤**<br/>
确认客户端应用进程正常
将三方应用后台进程杀死,重新启动三方应用,通过点击对话框等方式触发输入法应用的键盘的显示,若键盘正常显示,则问题解决
## 12800004 按键事件处理异常
**错误信息**
**错误信息**<br/>
Key event processing error.
**错误描述**
**错误描述**<br/>
当按键事件异常时,系统会报此错误码。
**可能原因**
**可能原因**<br/>
按键事件分发、消费、监听异常时会报错。
**处理步骤**
**处理步骤**<br/>
确认窗口按键事件正常消费。
## 12800005 配置固化失败
**错误信息**
**错误信息**<br/>
Configuration persisting error.
**错误描述**
**错误描述**<br/>
当保存配置失败时,系统会报此错误码。
**可能原因**
**可能原因**<br/>
当保存输入法及子类型的设置的调用发生异常时会报错。
**处理步骤**
**处理步骤**<br/>
确认输入法系统参数配置文件存在且权限正常(root: root, 644)
执行hdc命令setenforce 0关闭SELinux之后,重新执行接口调用,查看功能是否正常。若关闭SELinux之后功能正常,则确认输入法应用是否配置在系统参数配置文件中,详见[系统参数配置指导](https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/subsystems/subsys-boot-init-sysparam.md)
## 12800006 输入法控制器异常
**错误信息**
**错误信息**<br/>
Input method controller error.
**错误描述**
**错误描述**<br/>
当获取到输入法控制器,并基于此进行一些操作发生错误时,系统会报此错误码。
当获取到输入法控制器失败时,系统会报此错误码。
**可能原因**
**可能原因**<br/>
进行软键盘的显示、隐藏、输入会话的停止等操作发生异常时会报错。
在调用getCotroller接口获取输入法控制器InputMethodController时发生异常时会报错。
**处理步骤**
1. 确认输入法管理服务进程正常。
2. 确认获取输入法控制器接口调用正常。
3. 确认输入法应用进程正常。
4. 确认显示隐藏接口调用正常。
**处理步骤**<br/>
无。
## 12800007 输入法设置器异常
**错误信息**
**错误信息**<br/>
Input method settings extension error.
**错误描述**
**错误描述**<br/>
当获取到输入法设置器,并基于此进行一些操作发生错误时,系统会报此错误码。
当获取到输入法设置器发生错误时,系统会报此错误码。
**可能原因**
**可能原因**<br/>
列出输入法应用、列出子类型、列出当前输入法应用等发生异常时会报错。
在调用getSetting接口获取输入法设置器InputMethodSetting时发生异常时会报错。
**处理步骤**
**处理步骤**<br/>
1. 确认输入法管理服务进程正常。
2. 确认输入法应用进程正常。
3. 确认切换输入法接口调用正常。
无。
## 12800008 输入法管理服务异常
**错误信息**
**错误信息**<br/>
Input method manager service error.
**错误描述**
**错误描述**<br/>
获取输入法管理服务异常时,系统会报此错误码。
**可能原因**
**可能原因**<br/>
由于SA异常导致的调用InputMethodSystemAbility接口异常时会报错
当调用[输入法框架](../apis/js-apis-inputmethod.md)中的任何接口都有可能由于依赖输入法管理服务,而服务找不到时发生此异常
**处理步骤**
**处理步骤**<br/>
1. 确认输入法管理服务进程正常。
2. 尝试重启输入法管理服务。
无。
## 12899999 其他异常
**错误信息**
**错误信息**<br/>
Others error.
**错误描述**
**错误描述**<br/>
发生除以上几种类型的错误之外的其他类型错误时,系统会报此错误码。
**可能原因**
**可能原因**<br/>
发生了除了上述异常之外的未定义异常时会报错。
**处理步骤**
**处理步骤**<br/>
无。
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册