1# 输入法框架 2 3本模块提供对输入法框架的管理,包括隐藏输入法、查询已安装的输入法列表和拉起选择输入法弹窗。 4 5> **说明:** 6> 7> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## 导入模块 10 11```js 12import inputMethod from '@ohos.inputmethod'; 13``` 14 15## 常量<sup>8+</sup> 16 17常量值。 18 19**系统能力:** SystemCapability.Miscservices.InputMethodFramework 20 21| 名称 | 参数类型 | 常量值 | 说明 | 22| -------- | -------- | ---------- | -------- | 23| MAX_TYPE_NUM | number | 128 | 可支持的最大输入法个数。 | 24 25## InputMethodProperty<sup>8+</sup> 26 27输入法应用属性。 28 29**系统能力:** SystemCapability.Miscservices.InputMethodFramework 30 31| 名称 | 参数类型 | 可读 | 可写 | 说明 | 32| -------- | -------- | -------- | -------- | -------- | 33| packageName | string | 是 | 否 | 输入法包名。 | 34| methodId | string | 是 | 否 | 输入法唯一标识。 | 35 36## inputMethod.getInputMethodController 37 38getInputMethodController(): InputMethodController 39 40获取客户端实例[InputMethodController](#inputmethodcontroller)。 41 42**系统能力:** SystemCapability.Miscservices.InputMethodFramework 43 44**返回值:** 45 46| 类型 | 说明 | 47| -------- | -------- | 48| [InputMethodController](#inputmethodcontroller) | 返回当前客户端实例。 | 49 50**示例:** 51 52```js 53let inputMethodController = inputMethod.getInputMethodController(); 54``` 55 56## inputMethod.getInputMethodSetting<sup>8+</sup> 57 58getInputMethodSetting(): InputMethodSetting 59 60获取客户端设置实例[InputMethodSetting](#inputmethodsetting)。 61 62**系统能力:** SystemCapability.Miscservices.InputMethodFramework 63 64**返回值:** 65 66| 类型 | 说明 | 67| ----------------------------------------- | ------------------------ | 68| [InputMethodSetting](#inputmethodsetting) | 返回当前客户端设置实例。 | 69 70**示例:** 71 72```js 73let inputMethodSetting = inputMethod.getInputMethodSetting(); 74``` 75 76## InputMethodController 77 78下列API示例中都需使用[getInputMethodController](#inputmethodgetinputmethodcontroller)回调获取到InputMethodController实例,再通过此实例调用对应方法。 79 80### stopInput 81 82stopInput(callback: AsyncCallback<boolean>): void 83 84结束输入法会话。使用callback异步回调。 85 86**系统能力:** SystemCapability.Miscservices.InputMethodFramework 87 88**参数:** 89 90| 参数名 | 类型 | 必填 | 说明 | 91| -------- | -------- | -------- | -------- | 92| callback | AsyncCallback<boolean> | 是 | 回调函数,返回结束输入法会话是否成功的结果。true表示结束输入法会话成功;false表示结束输入法会话失败。 | 93 94**示例:** 95 96```js 97inputMethodController.stopInput((error, result) => { 98 if (error) { 99 console.error('Failed to stop inputmethod session: ' + JSON.stringify(error)); 100 return; 101 } 102 if (result) { 103 console.info('Succeeded in stopping inputmethod session.'); 104 } else { 105 console.error('Failed to stop inputmethod session.'); 106 } 107}); 108``` 109 110### stopInput 111 112stopInput(): Promise<boolean> 113 114结束输入法会话。使用Promise异步回调。 115 116**系统能力:** SystemCapability.Miscservices.InputMethodFramework 117 118**返回值:** 119 120| 类型 | 说明 | 121| -------- | -------- | 122| Promise<boolean> | Promise对象,返回结束输入法会话是否成功的结果。true表示结束输入法会话成功;false表示结束输入法会话失败。 | 123 124**示例:** 125 126```js 127inputMethodController.stopInput().then((result) => { 128 if (result) { 129 console.info('Succeeded in stopping inputmethod session.'); 130 } else { 131 console.error('Failed to stop inputmethod session'); 132 } 133}) 134``` 135 136## InputMethodSetting<sup>8+</sup> 137 138下列API示例中都需使用[getInputMethodSetting](#inputmethodgetinputmethodsetting)回调获取到InputMethodSetting实例,再通过此实例调用对应方法。 139 140### listInputMethod<sup>8+</sup> 141 142listInputMethod(callback: AsyncCallback<Array<InputMethodProperty>>): void 143 144查询已安装的输入法列表。使用callback异步回调。 145 146**系统能力:** SystemCapability.Miscservices.InputMethodFramework 147 148**参数:** 149 150| 参数名 | 类型 | 必填 | 说明 | 151| -------- | -------------------------------------------------- | ---- | ---------------------- | 152| callback | Array<[InputMethodProperty](#inputmethodproperty)> | 是 | 回调函数,返回已安装的输入法列表。 | 153 154**示例:** 155 156```js 157inputMethodSetting.listInputMethod((err, data) => { 158 if(err) { 159 console.error('Failed to list inputmethods: ' + JSON.stringify(err)); 160 return; 161 } 162 console.log('Succeeded in listing inputmethods, data: ' + JSON.stringify(data)); 163 }); 164``` 165 166### listInputMethod<sup>8+</sup> 167 168listInputMethod(): Promise<Array<InputMethodProperty>> 169 170查询已安装的输入法列表。使用Promise异步回调。 171 172**系统能力:** SystemCapability.Miscservices.InputMethodFramework 173 174**返回值:** 175 176| 类型 | 说明 | 177| ----------------------------------------------------------- | ---------------------- | 178| Promise<Array<[InputMethodProperty](#inputmethodproperty)>> | Promise对象,返回已安装的输入法列表。| 179 180**示例:** 181 182```js 183inputMethodSetting.listInputMethod().then((data) => { 184 console.info('Succeeded in listing inputMethod.'); 185}).catch((err) => { 186 console.error('Failed to list inputMethod: ' + JSON.stringify(err)); 187}) 188``` 189 190### displayOptionalInputMethod<sup>8+</sup> 191 192displayOptionalInputMethod(callback: AsyncCallback<void>): void 193 194显示选择输入法弹窗。使用callback异步回调。 195 196**系统能力:** SystemCapability.Miscservices.InputMethodFramework 197 198**参数:** 199 200| 参数名 | 类型 | 必填 | 说明 | 201| -------- | -------- | -------- | -------- | 202| callback | AsyncCallback<void> | 是 | 回调函数。当选择输入法弹窗显示成功。err为undefined,否则为错误对象。 | 203 204**示例:** 205 206```js 207inputMethodSetting.displayOptionalInputMethod((err) => { 208 if (err) { 209 console.error('Failed to display optionalInputMethod:' + JSON.stringify(err)); 210 return; 211 } 212 console.info('Succeeded in displaying optionalInputMethod.'); 213}); 214``` 215 216### displayOptionalInputMethod<sup>8+</sup> 217 218displayOptionalInputMethod(): Promise<void> 219 220显示选择输入法弹窗。使用Promise异步回调。 221 222**系统能力:** SystemCapability.Miscservices.InputMethodFramework 223 224**返回值:** 225 226| 类型 | 说明 | 227| -------- | -------- | 228| Promise<void> | 无返回结果的Promise对象。 | 229 230**示例:** 231 232```js 233inputMethodSetting.displayOptionalInputMethod().then(() => { 234 console.info('Succeeded in displaying optionalInputMethod.'); 235}).catch((err) => { 236 console.error('Failed to display optionalInputMethod: ' + JSON.stringify(err)); 237}) 238```