js-apis-inputmethod.md 12.1 KB
Newer Older
Z
zhouyongfei 已提交
1 2
# 输入法框架

T
explain  
tianyu 已提交
3 4
本模块提供对输入法框架的管理,包括隐藏输入法、查询已安装的输入法列表和显示输入法选择对话框。

5 6
>  **说明:**
>
Z
zhouyongfei 已提交
7 8 9 10 11 12
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块

```
13
import inputMethod from '@ohos.inputmethod';
Z
zhouyongfei 已提交
14 15 16 17 18 19
```

## inputMethod<sup>8+</sup>

常量值。

20
**系统能力**:以下各项对应的系统能力均为SystemCapability.MiscServices.InputMethodFramework
Z
刷新  
zhouyongfei 已提交
21

Z
zhouyongfei 已提交
22 23
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
Z
刷新  
zhouyongfei 已提交
24
| MAX_TYPE_NUM | number | 是 | 否 | 可支持的最大输入法个数。 |
Z
zhouyongfei 已提交
25 26


27
## InputMethodProperty<sup>8+</sup>
Z
zhouyongfei 已提交
28 29 30

输入法应用属性。

31
**系统能力**:以下各项对应的系统能力均为SystemCapability.MiscServices.InputMethodFramework
Z
刷新  
zhouyongfei 已提交
32

Z
zhouyongfei 已提交
33 34
| 名称 | 参数类型 | 可读 | 可写 | 说明 |
| -------- | -------- | -------- | -------- | -------- |
Z
刷新  
zhouyongfei 已提交
35 36
| packageName | string | 是 | 否 | 包名。 |
| methodId | string | 是 | 否 | Ability名。 |
Z
zhouyongfei 已提交
37

38
## inputMethod.getInputMethodController
Z
zhouyongfei 已提交
39 40 41

getInputMethodController(): InputMethodController

42
获取客户端实例[InputMethodController](#inputmethodcontroller)
Z
zhouyongfei 已提交
43

44
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
45

46
**返回值:**
Z
zhouyongfei 已提交
47

48 49 50
| 类型                                            | 说明                     |
| ----------------------------------------------- | ------------------------ |
| [InputMethodController](#inputmethodcontroller) | 回调返回当前客户端实例。 |
Z
zhouyongfei 已提交
51

52
**示例:**
T
explain  
tianyu 已提交
53

54
```js
Z
zhouyongfei 已提交
55
  var InputMethodController = inputMethod.getInputMethodController();
56
```
57

58
## inputMethod.getInputMethodSetting<sup>8+</sup>
Z
zhouyongfei 已提交
59 60 61

getInputMethodSetting(): InputMethodSetting

62
获取客户端设置实例[InputMethodSetting](#inputmethodsetting8)
Z
zhouyongfei 已提交
63

64
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
65

66
**返回值:**
Z
zhouyongfei 已提交
67

T
explain  
tianyu 已提交
68 69
| 类型                                      | 说明                         |
| ----------------------------------------- | ---------------------------- |
70
| [InputMethodSetting](#inputmethodsetting8) | 回调返回当前客户端设置实例。 |
Z
zhouyongfei 已提交
71 72


73
**示例:**
74 75

```js
Z
zhouyongfei 已提交
76
  var InputMethodSetting = inputMethod.getInputMethodSetting();
77
```
G
gaoxiang 已提交
78
## inputMethod.switchInputMethod<sup>9+</sup>
Z
zhouyongfei 已提交
79

Z
zhaolinglan 已提交
80
switchInputMethod(target: InputMethodProperty, callback: AsyncCallback&lt;boolean&gt;): void
G
gaoxiang 已提交
81

82
切换输入法。此接口仅可在Stage模型下使用。使用callback形式返回结果。参数个数为2,否则抛出异常。
83

Z
zhaolinglan 已提交
84
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
G
gaoxiang 已提交
85 86 87 88 89

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
G
gaoxiang 已提交
90
  |target | [InputmethodProperty](#inputmethodproperty8) | 是 | 传入要切换的目标输入法。 |
G
gaoxiang 已提交
91 92 93 94 95 96
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 返回输入法切换是否成功。 |


**示例:**

```js
Z
zhaolinglan 已提交
97
inputMethod.switchInputMethod({packageName:"com.example.kikakeyboard", methodId:"com.example.kikakeyboard"} ,(err,result) => {
Z
zhaolinglan 已提交
98
    if (err) {
Z
zhaolinglan 已提交
99
        console.error("switchInputMethod err: " + JSON.stringify(err));
100 101
        return;
    }
Z
zhaolinglan 已提交
102 103 104 105 106
    if (result) {
        console.info("Success to switchInputMethod.(callback)");
    } else {
        console.error("Failed to switchInputMethod.(callback)");
    }
107
});
G
gaoxiang 已提交
108
```
G
gaoxiang 已提交
109
## inputMethod.switchInputMethod<sup>9+</sup>
Z
zhaolinglan 已提交
110
switchInputMethod(target: InputMethodProperty): Promise&lt;boolean&gt;
G
gaoxiang 已提交
111

112
切换输入法。此接口仅可在Stage模型下使用。使用promise形式返回结果。参数个数为1,否则抛出异常。
G
gaoxiang 已提交
113

Z
zhaolinglan 已提交
114
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
G
gaoxiang 已提交
115

G
gaoxiang 已提交
116
**参数:**
G
gaoxiang 已提交
117 118 119

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
G
gaoxiang 已提交
120
  |target |  [InputmethodProperty](#inputmethodproperty8)| 是 | 传入要切换的目标输入法。 |
G
gaoxiang 已提交
121

G
gaoxiang 已提交
122 123 124
**返回值:**
  | 类型                                      | 说明                         |
  | ----------------------------------------- | ---------------------------- |
125
  | Promise\<boolean> | 回调返回切换后的输入法。 |
G
gaoxiang 已提交
126

G
gaoxiang 已提交
127 128 129 130
**示例:**


```js
Z
zhaolinglan 已提交
131 132 133 134 135 136 137 138 139
inputMethod.switchInputMethod({packageName:"com.example.kikakeyboard", methodId:"com.example.kikakeyboard"}).then((result) => {
    if (result) {
        console.info("Success to switchInputMethod.(promise)");
    } else {
        console.error("Failed to switchInputMethod.(promise)");
    }
}).catch((err) => {
    console.error("switchInputMethod promise err: " + err);
})
G
gaoxiang 已提交
140
```
141
## InputMethodController
Z
zhouyongfei 已提交
142

143
下列API示例中都需使用[getInputMethodController](#inputmethodgetinputmethodcontroller)回调获取到InputMethodController实例,再通过此实例调用对应方法。
Z
zhouyongfei 已提交
144 145 146 147 148

### stopInput

stopInput(callback: AsyncCallback&lt;boolean&gt;): void

149
隐藏输入法。使用callback形式返回结果。参数个数为1,否则抛出异常。
Z
zhouyongfei 已提交
150

151
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
152

153
**参数:**
Z
zhouyongfei 已提交
154

T
explain  
tianyu 已提交
155 156 157
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;boolean&gt; | 是 | 返回输入法隐藏是否成功。 |
Z
zhouyongfei 已提交
158

159
**示例:**
Z
zhouyongfei 已提交
160

161
```js
Z
zhaolinglan 已提交
162
InputMethodController.stopInput((error, result) => {
Z
zhaolinglan 已提交
163
    if (error) {
Z
zhaolinglan 已提交
164
        console.error("failed to stopInput because: " + JSON.stringify(error));
165 166
        return;
    }
Z
zhaolinglan 已提交
167 168 169 170 171
    if (result) {
        console.info("Success to stopInput.(callback)");
    } else {
        console.error("Failed to stopInput.(callback)");
    }
172
});
Z
zhouyongfei 已提交
173 174 175 176 177 178
```

### stopInput

stopInput(): Promise&lt;boolean&gt;

179
隐藏输入法。使用promise形式返回结果。参数个数为0,否则抛出异常。
Z
zhouyongfei 已提交
180

181
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
182

183
**返回值:**
Z
zhouyongfei 已提交
184

T
explain  
tianyu 已提交
185 186 187
| 类型 | 说明 |
| -------- | -------- |
| Promise&lt;boolean&gt; | 返回输入法隐藏是否成功。 |
Z
zhouyongfei 已提交
188

189
**示例:**
Z
zhouyongfei 已提交
190 191


192
```js
Z
zhaolinglan 已提交
193 194 195 196 197 198 199 200 201
InputMethodController.stopInput().then((result) => {
    if (result) {
        console.info("Success to stopInput.(promise)");
    } else {
        console.error("Failed to stopInput.(promise)");
    }
}).catch((err) => {
    console.error("stopInput promise err: " + err);
})
Z
zhouyongfei 已提交
202 203
```

Z
zhaolinglan 已提交
204
### showSoftKeyboard<sup>9+</sup> ###
Z
zhaolinglan 已提交
205

Z
zhaolinglan 已提交
206
showSoftKeyboard(callback: AsyncCallback&lt;void&gt;): void
Z
zhaolinglan 已提交
207

208
显示软键盘,使用callback异步回调。参数个数为1,否则抛出异常。
Z
zhaolinglan 已提交
209

Z
zhaolinglan 已提交
210
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
211 212 213

**参数:**

Z
zhaolinglan 已提交
214
| 参数名   | 参数类型                  | 必填 | 说明       |
Z
zhaolinglan 已提交
215 216
| -------- | ------------------------- | ---- | ---------- |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
Z
zhaolinglan 已提交
217 218 219 220

**示例:**

```js
Z
zhaolinglan 已提交
221 222
InputMethodController.showSoftKeyboard((err) => {
    if (err == undefined) {
Z
zhaolinglan 已提交
223
        console.info('showSoftKeyboard success');
Z
zhaolinglan 已提交
224
    } else {
Z
zhaolinglan 已提交
225
        console.error('showSoftKeyboard failed because : ' + JSON.stringify(err));
Z
zhaolinglan 已提交
226 227 228 229
    }
})
```

Z
zhaolinglan 已提交
230

Z
zhaolinglan 已提交
231
### showSoftKeyboard<sup>9+</sup> ###
Z
zhaolinglan 已提交
232

Z
zhaolinglan 已提交
233
showSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
234

235
显示软键盘,使用Promise异步回调。参数个数为0,否则抛出异常。
Z
zhaolinglan 已提交
236

Z
zhaolinglan 已提交
237
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
238 239 240

**返回值:**

Z
zhaolinglan 已提交
241 242 243
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
244 245 246 247

**示例:**

```js
Z
zhaolinglan 已提交
248 249 250
InputMethodController.showSoftKeyboard().then(async (err) => {
    console.log('showSoftKeyboard success');
}).catch((err) => {
Z
zhaolinglan 已提交
251
    console.error('showSoftKeyboard promise err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
252 253 254
});
```

Z
zhaolinglan 已提交
255
### hideSoftKeyboard<sup>9+</sup> ###
Z
zhaolinglan 已提交
256

Z
zhaolinglan 已提交
257
hideSoftKeyboard(callback: AsyncCallback&lt;void&gt;): void
Z
zhaolinglan 已提交
258

259
隐藏软键盘,使用callback异步回调。参数个数为1,否则抛出异常。
Z
zhaolinglan 已提交
260

Z
zhaolinglan 已提交
261
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
262 263 264

**参数:**

Z
zhaolinglan 已提交
265 266 267
| 参数名   | 参数类型                  | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
Z
zhaolinglan 已提交
268 269 270 271

**示例:**

```js
Z
zhaolinglan 已提交
272 273
InputMethodController.hideSoftKeyboard((err) => {
    if (err == undefined) {
Z
zhaolinglan 已提交
274
        console.info('hideSoftKeyboard success');
Z
zhaolinglan 已提交
275
    } else {
Z
zhaolinglan 已提交
276
        console.error('hideSoftKeyboard failed because : ' + JSON.stringify(err));
Z
zhaolinglan 已提交
277 278 279 280
    }
})
```

Z
zhaolinglan 已提交
281

Z
zhaolinglan 已提交
282
### hideSoftKeyboard<sup>9+</sup> ###
Z
zhaolinglan 已提交
283

Z
zhaolinglan 已提交
284
hideSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
285

286
隐藏软键盘,使用Promise异步回调。参数个数为0,否则抛出异常。
Z
zhaolinglan 已提交
287

Z
zhaolinglan 已提交
288
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
289 290 291

**返回值:**

Z
zhaolinglan 已提交
292 293 294
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
295 296 297 298

**示例:**

```js
Z
zhaolinglan 已提交
299 300 301
InputMethodController.hideSoftKeyboard().then(async (err) => {
    console.log('hideSoftKeyboard success');
}).catch((err) => {
Z
zhaolinglan 已提交
302
    console.error('hideSoftKeyboard promise err: ' + JSON.stringify(err));
Z
zhaolinglan 已提交
303 304 305
});
```

306
## InputMethodSetting<sup>8+</sup>
Z
zhouyongfei 已提交
307

308
下列API示例中都需使用[getInputMethodSetting](#inputmethodgetinputmethodcontroller)回调获取到InputMethodSetting实例,再通过此实例调用对应方法。
Z
zhouyongfei 已提交
309

Z
refresh  
zhouyongfei 已提交
310
### listInputMethod
Z
zhouyongfei 已提交
311 312 313

listInputMethod(callback: AsyncCallback&lt;Array&lt;InputMethodProperty&gt;&gt;): void

314
查询已安装的输入法列表。使用callback形式返回结果。参数个数为1,否则抛出异常。
Z
zhouyongfei 已提交
315

316
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
317

318
**参数:**
T
explain  
tianyu 已提交
319 320
| 参数名   | 类型                                               | 必填 | 说明                   |
| -------- | -------------------------------------------------- | ---- | ---------------------- |
321
| callback | Array<[InputMethodProperty](#inputmethodproperty8)> | 是   | 返回已安装输入法列表。 |
Z
zhouyongfei 已提交
322

323
**示例:**
T
explain  
tianyu 已提交
324

325
```js
Z
zhaolinglan 已提交
326
imeList: Array<inputMethod.InputMethodProperty> = null
327
InputMethodSetting.listInputMethod((err,data) => {
Z
zhaolinglan 已提交
328 329
    if (err) {
        console.error("listInputMethod failed because: " + JSON.stringify(err));
330
        return;
331
    }
Z
zhaolinglan 已提交
332
    console.log("listInputMethod success");
Z
zhaolinglan 已提交
333
    this.imeList = data;
334
 });
335
```
Z
zhouyongfei 已提交
336

Z
refresh  
zhouyongfei 已提交
337
### listInputMethod
Z
zhouyongfei 已提交
338

Z
zhaolinglan 已提交
339
listInputMethod(): Promise&lt;Array&lt;InputMethodProperty&gt;&gt;
Z
zhouyongfei 已提交
340

341
查询已安装的输入法列表。使用promise形式返回结果。参数个数为0,否则抛出异常。
Z
zhouyongfei 已提交
342

343
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
344

345
**返回值:**
T
explain  
tianyu 已提交
346 347
| 类型                                                        | 说明                   |
| ----------------------------------------------------------- | ---------------------- |
348
| Promise<Array<[InputMethodProperty](#inputmethodproperty8)>> | 返回已安装输入法列表。 |
Z
zhouyongfei 已提交
349

350
**示例:**
351 352

```js
Z
zhaolinglan 已提交
353
imeList: Array<inputMethod.InputMethodProperty> = null
Z
zhaolinglan 已提交
354 355 356 357 358 359
InputMethodSetting.listInputMethod().then((data) => {
    console.info("listInputMethod success");
    this.imeList = data;
}).catch((err) => {
    console.error("listInputMethod promise err: " + err);
})
360
```
Z
zhouyongfei 已提交
361

Z
refresh  
zhouyongfei 已提交
362
### displayOptionalInputMethod
Z
zhouyongfei 已提交
363 364 365

displayOptionalInputMethod(callback: AsyncCallback&lt;void&gt;): void

366
显示输入法选择对话框。使用callback形式返回结果。参数个数为1,否则抛出异常。
Z
zhouyongfei 已提交
367

368
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
369

370
**参数:**
Z
zhouyongfei 已提交
371 372 373 374 375

| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback&lt;void&gt; | 是 | 回调函数。 |

376
**示例:**
377 378

```js
379
InputMethodSetting.displayOptionalInputMethod((err) => {
Z
zhaolinglan 已提交
380 381
    if (err) {
        console.error("displayOptionalInputMethod failed because: " + JSON.stringify(err));
382 383
        return;
    }
Z
zhaolinglan 已提交
384
    console.info("displayOptionalInputMethod success");
385
});
386
```
Z
zhouyongfei 已提交
387

Z
refresh  
zhouyongfei 已提交
388
### displayOptionalInputMethod
Z
zhouyongfei 已提交
389 390 391

  displayOptionalInputMethod(): Promise&lt;void&gt;

392
  显示输入法选择对话框。使用promise形式返回结果。参数个数为0,否则抛出异常。
Z
zhouyongfei 已提交
393

394
  **系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
395

396
**返回值:**
Z
zhouyongfei 已提交
397

Z
refresh  
zhouyongfei 已提交
398
| 类型 | 说明 |
Z
zhouyongfei 已提交
399
| -------- | -------- |
400
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhouyongfei 已提交
401

402
**示例:**
403 404

```js
Z
zhaolinglan 已提交
405 406 407 408 409
InputMethodSetting.displayOptionalInputMethod().then(() => {
    console.info("displayOptionalInputMethod success.(promise)");
}).catch((err) => {
    console.error("displayOptionalInputMethod promise err: " + err);
})
410
```