输入法
更新时间:
接口声明
{ "name": "blueos.service.inputMethod" }复制代码
导入模块
import inputmethod from '@blueos.service.inputMethod' 或 const inputmethod = require('@blueos.service.inputMethod')复制代码
接口定义
inputmethod.setInput()
输入法应用向页面的 <input> 组件写入数据,仅输入法应用才会用到此功能
参数:
| 属性 | 类型 | 说明 |
|---|---|---|
| value | String | 输入法录入的数据 |
返回值:
无
示例:
inputmethod.setInput({
value: 'hello vivo watch',
})复制代码
如何调起输入法
1. 选择输入法类型
input 组件 type 属性可以控制拉起输入法类型
- text: 手写输入法
- speak: 语音输入法
<template>
<input type="text" value="inputValue" onchange="textChange" />
</template>
<script>
export default {
data: {
inputValue: '',
},
textChange({ value }) {
this.inputValue = value
},
}
</script>复制代码
2.禁止 input 输入法自动拉起
若调用者仅需要展示文本,而不希望自动拉起输入法,可以在 input 组件上设置属性 readonly="readonly"
<template>
<input type="text" value="inputValue" readonly="readonly" />
</template>
<script>
export default {
data: {
inputValue: 'hello',
},
}
</script>复制代码
3.任意组件拉起输入法
- 增加类型为
text或者speak的input组件,并将其隐藏show="false",input组件位置可以是任意的。 input组件的change事件回调用于调用者接收输入法返回的数据。- 在其他需要调用输入法的组件的
click事件中调用input组件的focus方法 - 若有多个组件需要启动输入法,只需要新增一个
input组件,在对应的组件的click方法中标识是哪个组件拉起输入法。
<template>
<div>
<text onclick="btnClick">{{inputValue}}</text>
<input show="false" id="ipt" type="text" onchange="textChange" />
</div>
</template>
<script>
export default {
data: {
inputValue: '',
},
textChange({ value }) {
this.inputValue = value
},
btnClick() {
this.$element('ipt').focus()
},
}
</script>复制代码