手机开发中,默认的手机按键处理方式都是直接退出程序。在实际中,手机开发者往往都需要进行自定义处理,而处理这些需要牵涉到手机端的原生控件的处理或者调用,这对于通过WEB方式开发手机应用来说,是一个难题。
H5+规范完成了对手机按键处理的处理。下面进行详细说明:
在手机中,常用的按键处理包括,“返回键”和“菜单键”的处理。使用H5+规范,需要在H5库就绪后使用。添加返回按键自定义处理的方式如下:
document.addEventListener("plusready", function() {
// 注册返回按键事件
plus.key.addEventListener('backbutton', function() {
// 事件处理
plus.nativeUI.confirm("退出程序?", function(event) {
if (event.index) {
plus.runtime.quit();
}
}, null, ["取消", "确定"]);
}, false);
});
其中,document.addEventListener("plusready", function() {}),作用是添加plusReady事件(就绪后处理),这里类似于JavaScript里的document.reday(function(){});
通过plus.key.addEventListener('backbutton', function() {}),添加“返回按钮”的事件处理。第一个参数为按键类型;后面的function参数就是点击手机返回按键的处理函数。
通过H5+的API可以知道,提供的处理按键包括以下几种:
backbutton | 设备返回按键 |
menubutton | 设备菜单按钮 |
searchbutton | 设备搜索按钮 |
volumnupbutton | 设备音量+按键 |
volumendownbutton | 设备音量-按键 |
keyup | 键盘松开事件 |
keydown | 键盘按下事件 |
longpressed | 长按按键事件 |
说明:在实际测试中,backbutton正常响应;其他按钮不能正常响应。
1. menubutton的响应都会被手机的菜单功能给屏蔽掉;
2. volumnupbutton和volumndownbutton会被keydown事件捕获,而成为按键按下事件;
3. longpressed事件同时也会触发keydown事件,因此这两个事件尽可能不要同时使用;
4. searchbutton 作者现在不知道是哪一个按键,测试虚拟键盘的search按键没有响应。