open resetPosition close show hide value insertValue popupKeyboard closeKeyboard addEventListener getSelectedRange
为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
某些 App 具有打开某一页面即可默认弹出键盘的功能,如某些登陆授权、评论页面。但是一个纯 html 的输入框标签,无法实现这一功能。为满足 YonBuilder移动开发 平台开发者对这一功能的需求,特推出了 UIInput 插件。
UIInput 是一个输入框插件,开发者可通过配置相应参数来控制输入框自动获取焦点,并弹出键盘。同普通的 UI 类的插件一样,本插件也可通过 rect 来设置其位置和大小,通过 styles参数设置其样式。为增强输入框功能,插件开放了 keyboardType 参数,开发者可通过设置该参数来控制其键盘类型。
插件效果图如下:
***本插件源码已开源,地址
注意:
1,在 iOS 上如果 open 窗口时候加了延迟,则该插件被打开时即便 autoFocus 为 true 也不会弹出键盘,会出现弹出键盘然后又缩回去的现象。该问题的解决方法是去掉延迟;
2,由于输入法的关系,当 autoFocus 为 true 时部分 android 机型上默认弹不出键盘
3,android光标样式配置:
打开输入框,注意:调用 open 接口的元素,不能加 tapmode 属性
open({params}, callback(ret))
rect:
{
x: 0, //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
y: 0, //(可选项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
w: 320, //(可选项)数字类型;插件的宽度;默认:所属的 Window 或 Frame 的宽度
h: 40 //(可选项)数字类型;插件的高度;默认:40
}
styles:
{
bgColor: '#fff', //(可选项)字符串类型;输入框的背景色,支持 rgb、rgba、#;默认:'#fff'
size: 14, //(可选项)数字类型;输入框的文字大小;默认:14
color: '#000', //(可选项)字符串类型;输入框内的字体颜色,支持 rgb、rgba、#;默认:'#000'
cursorColor: '#4169E1', //(可选项)字符串类型;输入框内的光标颜色,支持 rgb、rgba、#;默认:'#4169E1'(该参数仅对ios有效,需要配置android的光标样式可参考 **插件接口** 说明)
placeholder: {
color: '#ccc', //(可选项)字符串类型;输入框占位文字的颜色;默认:'#ccc'
size:13 //(可选项)数字类型;输入框占位文字的大小;默认:13
}
}
maxRows:
maxStringLength:
autoFocus:
placeholder:
keyboardType:
alignment:
isCenterVertical:
inputType:
fixedOn:
fixed:
ret:
{
id:1, //数字类型;输入框的id
eventType: 'show' //字符串类型;交互事件类型,
//取值范围:
//show(插件打开成功)
//change(输入框内容改变)
//search(点击键盘的搜索按钮)
//send(点击键盘的发送按钮,暂仅支持ios平台)
//done(点击键盘的确定按钮,暂仅支持ios平台)
}
var UIInput = api.require('UIInput');
UIInput.open({
rect: {
x: 0,
y: 0,
w: api.winWidth,
h: 40
},
styles: {
bgColor: '#fff',
size: 14,
color: '#000',
placeholder: {
color: '#ccc'
}
},
autoFocus: false,
maxRows: 4,
placeholder: '这是一个输入框',
keyboardType: 'number',
fixedOn: api.frameName
}, function(ret) {
if (ret.eventType == 'change') {
} else {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
重设输入框的位置
resetPosition({params})
id:
position:
{
x: 0, //(可选项)数字类型;插件左上角的 x 坐标(相对于所属的 Window 或 Frame);默认:0
y: 0, //(可选项)数字类型;插件左上角的 y 坐标(相对于所属的 Window 或 Frame);默认:0
}
var UIInput = api.require('UIInput');
UIInput.resetPosition({
position: {
x: 100,
y: 100
},
id:2
});
iOS系统,Android系统
可提供的1.0.8及更高版本
关闭输入框
close({params})
id:
var UIInput = api.require('UIInput');
UIInput.close({
id:0
});
iOS系统,Android系统
可提供的1.0.0及更高版本
显示输入框
show({params})
id:
var UIInput = api.require('UIInput');
UIInput.show({
id:0
});
iOS系统,Android系统
可提供的1.0.0及更高版本
隐藏输入框
hide({params})
id:
var UIInput = api.require('UIInput');
UIInput.hide({
id:0
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取或设置输入框的内容
value({params}, callback(ret))
id:
msg:
ret:
{
msg: '' //字符串类型;输入框当前内容文本
}
var UIInput = api.require('UIInput');
UIInput.value({
msg: '设置输入框的值'
});
UIInput.value(function(ret) {
if (ret) {
api.alert({msg: JSON.stringify(ret)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
向输入框的指定位置插入内容
insertValue({params})
id:
index:
msg:
var UIInput = api.require('UIInput');
UIInput.insertValue({
index: 10,
msg: '这里是插入的字符串'
});
iOS系统,Android系统
可提供的1.0.0及更高版本
弹出键盘
popupKeyboard({params})
id:
var UIInput = api.require('UIInput');
UIInput.popupKeyboard({
id:0
});
iOS系统,Android系统
可提供的1.0.0及更高版本
收起键盘
closeKeyboard({params})
id:
var UIInput = api.require('UIInput');
UIInput.closeKeyboard({
id:0
});
iOS系统,Android系统
可提供的1.0.0及更高版本
事件监听
addEventListener({params}, callback(ret))
id:
name:
ret:
{
keyboardHeight:216 //数字类型;本参数仅当当 name 为 becomeFirstResponder 时有效,表示弹出的键盘高度
}
var UIInput = api.require('UIInput');
UIInput.addEventListener({
name: 'resignFirstResponder'
}, function(ret) {
alert("输入框失去焦点!");
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取当前光标所在位置
getSelectedRange({params},callback(ret))
id:
ret:
{
location:0, //数字类型;光标位置
}
var UIInput = api.require('UIInput');
UIInput.getSelectedRange({
id: 0
}, function(ret) {
api.alert({msg: JSON.stringify(ret)});
});
iOS系统,Android系统
可提供的1.0.9及更高版本