js-apis-inputmethod.md 11.8 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

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

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

G
gaoxiang 已提交
84 85 86 87 88 89 90

**系统能力**:SystemCapability.Miscservices.InputMethodFramework

**参数:**

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


**示例:**

```js
  inputMethod.switchInputMethod({packageName:"com.ohos.inputApp", methodId:"InputDemoService"}).then(res => {
     prompt.showToast({message:"切换输入法成功" + this.imeList[this.flag].packageName, duration: 200});
 });
```
G
gaoxiang 已提交
102
## inputMethod.switchInputMethod<sup>9+</sup>
G
gaoxiang 已提交
103 104
switchInputMethod(target: InputmethodProperty): Promise&lt;boolean&gt;

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

**系统能力**: SystemCapability.Miscservices.InputMethodFramework

G
gaoxiang 已提交
109
**参数:**
G
gaoxiang 已提交
110 111 112

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

G
gaoxiang 已提交
115 116 117
**返回值:**
  | 类型                                      | 说明                         |
  | ----------------------------------------- | ---------------------------- |
118
  | Promise\<boolean> | 回调返回切换后的输入法。 |
G
gaoxiang 已提交
119

G
gaoxiang 已提交
120 121 122 123 124 125 126 127
**示例:**


```js
  inputMethod.switchInputMethod({packageName:"com.ohos.inputApp", methodId:"InputDemoService"}).then(res => {
     prompt.showToast({message:"切换输入法成功" + this.imeList[this.flag].packageName, duration: 200});
 });
```
128
## InputMethodController
Z
zhouyongfei 已提交
129

130
下列API示例中都需使用[getInputMethodController](#inputmethodgetinputmethodcontroller)回调获取到InputMethodController实例,再通过此实例调用对应方法。
Z
zhouyongfei 已提交
131 132 133 134 135

### stopInput

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

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

138
**系统能力**:SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
139

140
**参数:**
Z
zhouyongfei 已提交
141

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

146
**示例:**
Z
zhouyongfei 已提交
147

148
```js
149
InputMethodController.stopInput((err, result) => {
150 151 152 153 154 155 156 157 158 159
    if (err == undefined) {
        console.error("stopInput callback result---err: " + err.msg);
        return;
    }
    if (result) {
        console.info("Success to stopInput.(callback)");
    } else {
        console.info("Failed to stopInput.(callback)");
    }
});
Z
zhouyongfei 已提交
160 161 162 163 164 165
```

### stopInput

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

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

168
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
169

170
**返回值:**
Z
zhouyongfei 已提交
171

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

176
**示例:**
Z
zhouyongfei 已提交
177 178


179
```js
180 181 182 183 184 185 186 187 188 189 190
async function InputMethod() {
    await InputMethodController.stopInput().then((result)=>{
        if (result) {
            console.info("Success to stopInput.(promise)");
        } else {
            console.info("Failed to stopInput.(promise)");
        }
    }).catch((err) => {
        console.error("stopInput promise err: " + err.msg);
    });
}
Z
zhouyongfei 已提交
191 192
```

Z
zhaolinglan 已提交
193
### showSoftKeyboard<sup>9+</sup> ###
Z
zhaolinglan 已提交
194

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

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

Z
zhaolinglan 已提交
199
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
200 201 202

**参数:**

Z
zhaolinglan 已提交
203
| 参数名   | 参数类型                  | 必填 | 说明       |
Z
zhaolinglan 已提交
204 205
| -------- | ------------------------- | ---- | ---------- |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
Z
zhaolinglan 已提交
206 207 208 209

**示例:**

```js
Z
zhaolinglan 已提交
210 211 212 213 214
InputMethodController.showSoftKeyboard((err) => {
    if (err == undefined) {
        console.error('showSoftKeyboard success');
    } else {
        console.info('showSoftKeyboard failed : ' + JSON.stringify(err));
Z
zhaolinglan 已提交
215 216 217 218
    }
})
```

Z
zhaolinglan 已提交
219

Z
zhaolinglan 已提交
220
### showSoftKeyboard<sup>9+</sup> ###
Z
zhaolinglan 已提交
221

Z
zhaolinglan 已提交
222
showSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
223

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

Z
zhaolinglan 已提交
226
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
227 228 229

**返回值:**

Z
zhaolinglan 已提交
230 231 232
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
233 234 235 236

**示例:**

```js
Z
zhaolinglan 已提交
237 238 239 240
InputMethodController.showSoftKeyboard().then(async (err) => {
    console.log('showSoftKeyboard success');
}).catch((err) => {
    console.log('showSoftKeyboard fail ' + JSON.stringify(err));
Z
zhaolinglan 已提交
241 242 243
});
```

Z
zhaolinglan 已提交
244
### hideSoftKeyboard<sup>9+</sup> ###
Z
zhaolinglan 已提交
245

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

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

Z
zhaolinglan 已提交
250
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
251 252 253

**参数:**

Z
zhaolinglan 已提交
254 255 256
| 参数名   | 参数类型                  | 必填 | 说明       |
| -------- | ------------------------- | ---- | ---------- |
| callback | AsyncCallback&lt;void&gt; | 是   | 回调函数。 |
Z
zhaolinglan 已提交
257 258 259 260

**示例:**

```js
Z
zhaolinglan 已提交
261 262 263 264 265
InputMethodController.hideSoftKeyboard((err) => {
    if (err == undefined) {
        console.error('hideSoftKeyboard success');
    } else {
        console.info('hideSoftKeyboard failed : ' + JSON.stringify(err));
Z
zhaolinglan 已提交
266 267 268 269
    }
})
```

Z
zhaolinglan 已提交
270

Z
zhaolinglan 已提交
271
### hideSoftKeyboard<sup>9+</sup> ###
Z
zhaolinglan 已提交
272

Z
zhaolinglan 已提交
273
hideSoftKeyboard(): Promise&lt;void&gt;
Z
zhaolinglan 已提交
274

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

Z
zhaolinglan 已提交
277
**系统能力:**  SystemCapability.MiscServices.InputMethodFramework
Z
zhaolinglan 已提交
278 279 280

**返回值:**

Z
zhaolinglan 已提交
281 282 283
| 类型                | 说明                      |
| ------------------- | ------------------------- |
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhaolinglan 已提交
284 285 286 287

**示例:**

```js
Z
zhaolinglan 已提交
288 289 290 291
InputMethodController.hideSoftKeyboard().then(async (err) => {
    console.log('hideSoftKeyboard success');
}).catch((err) => {
    console.log('hideSoftKeyboard fail ' + JSON.stringify(err));
Z
zhaolinglan 已提交
292 293 294
});
```

295
## InputMethodSetting<sup>8+</sup>
Z
zhouyongfei 已提交
296

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

Z
refresh  
zhouyongfei 已提交
299
### listInputMethod
Z
zhouyongfei 已提交
300 301 302

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

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

305
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
306

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

312
**示例:**
T
explain  
tianyu 已提交
313

314
```js
315
InputMethodSetting.listInputMethod((err,data) => {
316 317 318
    if (err == undefined) {
        console.error("listInputMethod callback result---err: " + err.msg);
        return;
319
    }
320 321
    console.info("listInputMethod callback result---data: " + JSON.stringify(data));
 });
322
```
Z
zhouyongfei 已提交
323

Z
refresh  
zhouyongfei 已提交
324
### listInputMethod
Z
zhouyongfei 已提交
325

326
listInputMethod(): Promise<Array<InputMethodProperty>>;
Z
zhouyongfei 已提交
327

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

330
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
331

332
**返回值:**
T
explain  
tianyu 已提交
333 334
| 类型                                                        | 说明                   |
| ----------------------------------------------------------- | ---------------------- |
335
| Promise<Array<[InputMethodProperty](#inputmethodproperty8)>> | 返回已安装输入法列表。 |
Z
zhouyongfei 已提交
336

337
**示例:**
338 339

```js
340 341 342 343 344 345 346
async function InputMethod() {
    await InputMethodSetting.listInputMethod().then((data)=>{
        console.info("listInputMethod promise result---data: " + JSON.stringify(data));
    }).catch((err) => {
        console.info("listInputMethod promise err:" + err.msg);
    });
}
347
```
Z
zhouyongfei 已提交
348

Z
refresh  
zhouyongfei 已提交
349
### displayOptionalInputMethod
Z
zhouyongfei 已提交
350 351 352

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

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

355
**系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
356

357
**参数:**
Z
zhouyongfei 已提交
358 359 360 361 362

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

363
**示例:**
364 365

```js
366
InputMethodSetting.displayOptionalInputMethod((err) => {
367 368 369 370 371 372
    if (err == undefined) {
        console.error("displayOptionalInputMethod callback---err: " + err.msg);
        return;
    }
    console.info("displayOptionalInputMethod callback");
});
373
```
Z
zhouyongfei 已提交
374

Z
refresh  
zhouyongfei 已提交
375
### displayOptionalInputMethod
Z
zhouyongfei 已提交
376 377 378

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

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

381
  **系统能力**: SystemCapability.MiscServices.InputMethodFramework
Z
zhouyongfei 已提交
382

383
**返回值:**
Z
zhouyongfei 已提交
384

Z
refresh  
zhouyongfei 已提交
385
| 类型 | 说明 |
Z
zhouyongfei 已提交
386
| -------- | -------- |
387
| Promise&lt;void&gt; | 无返回结果的Promise对象。 |
Z
zhouyongfei 已提交
388

389
**示例:**
390 391

```js
392 393 394 395 396 397 398
async function InputMethod() {
    await InputMethodSetting.displayOptionalInputMethod().then(()=>{
        console.info("displayOptionalInputMethod promise");
    }).catch((err) => {
        console.info("listInputMethod promise err: " + err.msg);
    });
}
399
```