js-apis-inputmethod.md 7.3 KB
Newer Older
Z
zhouyongfei 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# 输入法框架

> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## 导入模块

```
import inputMethod from '@ohos.inputMethod';
```

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

常量值。

Z
refresh  
zhouyongfei 已提交
17
**系统能力**:以下各项对应的系统能力均为SystemCapability.Miscservices.InputMethodFramework
Z
刷新  
zhouyongfei 已提交
18

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


24
## InputMethodProperty<sup>8+</sup>
Z
zhouyongfei 已提交
25 26 27

输入法应用属性。

Z
refresh  
zhouyongfei 已提交
28
**系统能力**:以下各项对应的系统能力均为SystemCapability.Miscservices.InputMethodFramework
Z
刷新  
zhouyongfei 已提交
29

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

35
## inputMethod.getInputMethodController
Z
zhouyongfei 已提交
36 37 38 39 40

getInputMethodController(): InputMethodController

获取客户端实例[InputMethodController](#InputMethodController)

Z
refresh  
zhouyongfei 已提交
41
**系统能力**:SystemCapability.Miscservices.InputMethodFramework
Z
zhouyongfei 已提交
42

43
**返回值:**
Z
zhouyongfei 已提交
44 45 46 47 48

    | 类型 | 说明 |
    | -------- | -------- |
    | [InputMethodController](#InputMethodController) | 回调返回当前客户端实例。 |

49
**示例:**
50 51
  
```js
Z
zhouyongfei 已提交
52
  var InputMethodController = inputMethod.getInputMethodController();
53
```
54

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

getInputMethodSetting(): InputMethodSetting

获取客户端设置实例[InputMethodSetting](#InputMethodSetting)

Z
refresh  
zhouyongfei 已提交
61
**系统能力**: SystemCapability.Miscservices.InputMethodFramework
Z
zhouyongfei 已提交
62

63
**返回值:**
Z
zhouyongfei 已提交
64 65 66 67 68 69

  | 类型                                      | 说明                         |
  | ----------------------------------------- | ---------------------------- |
  | [InputMethodSetting](#InputMethodSetting) | 回调返回当前客户端设置实例。 |


70
**示例:**
71 72

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

G
gaoxiang 已提交
77 78 79 80 81 82 83 84 85
switchInputMethod(target: InputmethodProperty, callback: AsyncCallback&lt;boolean&gt;): void;


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

**参数:**

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
G
gaoxiang 已提交
86
  |target | [InputmethodProperty](#InputmethodProperty) | 是 | 传入要切换的目标输入法。 |
G
gaoxiang 已提交
87 88 89 90 91 92 93 94 95 96
  | 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 已提交
97
## inputMethod.switchInputMethod<sup>9+</sup>
G
gaoxiang 已提交
98 99 100 101 102
switchInputMethod(target: InputmethodProperty): Promise&lt;boolean&gt;


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

G
gaoxiang 已提交
103
**参数:**
G
gaoxiang 已提交
104 105 106

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

G
gaoxiang 已提交
109 110 111 112
**返回值:**
  | 类型                                      | 说明                         |
  | ----------------------------------------- | ---------------------------- |
  | [Promise](#Promise) | 回调返回切换后的输入法。 |
G
gaoxiang 已提交
113 114 115 116 117 118 119 120
**示例:**


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

Z
refresh  
zhouyongfei 已提交
123
下列API示例中都需使用[getInputMethodController](#getInputMethodController)回调获取到InputMethodController实例,再通过此实例调用对应方法。
Z
zhouyongfei 已提交
124 125 126 127 128 129 130

### stopInput

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

隐藏输入法。

Z
refresh  
zhouyongfei 已提交
131
**系统能力**:SystemCapability.Miscservices.InputMethodFramework
Z
zhouyongfei 已提交
132

133
**参数:**
Z
zhouyongfei 已提交
134 135 136 137 138

  | 参数名 | 类型 | 必填 | 说明 |
  | -------- | -------- | -------- | -------- |
  | callback | AsyncCallback&lt;boolean&gt; | 是 | 返回输入法隐藏是否成功。 |

139
**示例:**
Z
zhouyongfei 已提交
140

141
```js
142
  InputMethodController.stopInput((error)=>{
Z
zhouyongfei 已提交
143 144 145 146 147 148 149 150 151 152
     console.info('stopInput');
 });
```

### stopInput

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

隐藏输入法。

Z
refresh  
zhouyongfei 已提交
153
**系统能力**: SystemCapability.Miscservices.InputMethodFramework
Z
zhouyongfei 已提交
154

155
**返回值:**
Z
zhouyongfei 已提交
156

Z
refresh  
zhouyongfei 已提交
157 158 159
  | 类型 | 说明 |
  | -------- | -------- |
  | Promise&lt;boolean&gt; | 返回输入法隐藏是否成功。 |
Z
zhouyongfei 已提交
160

161
**示例:**
Z
zhouyongfei 已提交
162 163


164
```js
165 166
  var isSuccess = InputMethodController.stopInput();
  console.info('stopInput isSuccess = ' + isSuccess);
Z
zhouyongfei 已提交
167 168
```

169
## InputMethodSetting<sup>8+</sup>
Z
zhouyongfei 已提交
170

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

Z
refresh  
zhouyongfei 已提交
173
### listInputMethod
Z
zhouyongfei 已提交
174 175 176 177 178

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

查询已安装的输入法列表。

Z
refresh  
zhouyongfei 已提交
179
**系统能力**: SystemCapability.Miscservices.InputMethodFramework
Z
zhouyongfei 已提交
180

181
**参数:**
Z
refresh  
zhouyongfei 已提交
182 183 184
  | 参数名   | 类型                                               | 必填 | 说明                   |
  | -------- | -------------------------------------------------- | ---- | ---------------------- |
  | callback | Array<[InputMethodProperty](#InputMethodProperty)> | 是   | 返回已安装输入法列表。 |
Z
zhouyongfei 已提交
185

186
**示例:**
187 188
  
```js
189 190 191 192 193
  InputMethodSetting.listInputMethod((properties)=>{
    for (var i = 0;i < properties.length; i++) {
      var property = properties[i];
      console.info(property.packageName + "/" + property.methodId);
    }
Z
zhouyongfei 已提交
194
  });
195
```
Z
zhouyongfei 已提交
196

Z
refresh  
zhouyongfei 已提交
197
### listInputMethod
Z
zhouyongfei 已提交
198

199
listInputMethod(): Array&lt;InputMethodProperty&gt;
Z
zhouyongfei 已提交
200 201 202

查询已安装的输入法列表。

Z
refresh  
zhouyongfei 已提交
203
**系统能力**: SystemCapability.Miscservices.InputMethodFramework
Z
zhouyongfei 已提交
204

205
**返回值:**
Z
refresh  
zhouyongfei 已提交
206 207 208
  | 类型                                                        | 说明                   |
  | ----------------------------------------------------------- | ---------------------- |
  | Promise<Array<[InputMethodProperty](#InputMethodProperty)>> | 返回已安装输入法列表。 |
Z
zhouyongfei 已提交
209

210
**示例:**
211 212

```js
213 214 215 216 217
  var properties = InputMethodSetting.listInputMethod();
  for (var i = 0;i < properties.length; i++) {
    var property = properties[i];
    console.info(property.packageName + "/" + property.methodId);
  }
218
```
Z
zhouyongfei 已提交
219

Z
refresh  
zhouyongfei 已提交
220
### displayOptionalInputMethod
Z
zhouyongfei 已提交
221 222 223 224 225

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

显示输入法选择对话框。

Z
refresh  
zhouyongfei 已提交
226
**系统能力**: SystemCapability.Miscservices.InputMethodFramework
Z
zhouyongfei 已提交
227

228
**参数:**
Z
zhouyongfei 已提交
229 230 231 232 233

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

234
**示例:**
235 236

```js
237 238 239
  InputMethodSetting.displayOptionalInputMethod(()=>{
    console.info('displayOptionalInputMethod is called');
  });
240
```
Z
zhouyongfei 已提交
241

Z
refresh  
zhouyongfei 已提交
242
### displayOptionalInputMethod
Z
zhouyongfei 已提交
243 244 245 246 247

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

  显示输入法选择对话框。

Z
refresh  
zhouyongfei 已提交
248
  **系统能力**: SystemCapability.Miscservices.InputMethodFramework
Z
zhouyongfei 已提交
249

250
**返回值:**
Z
zhouyongfei 已提交
251

Z
refresh  
zhouyongfei 已提交
252
| 类型 | 说明 |
Z
zhouyongfei 已提交
253 254 255
| -------- | -------- |
| Promise&lt;void&gt; | 回调函数。 |

256
**示例:**
257 258

```js
259
  InputMethodSetting.displayOptionalInputMethod();
260
```