启用按键监听
启用按键监听,例如音量键、Home键。按键监听使用无障碍服务实现,如果无障碍服务未启用会抛出异常并提示开启。
只有这个函数成功执行后, onKeyDown, onKeyUp等按键事件的监听才有效。
该函数在安卓4.3以上才能使用。
注册一个按键监听函数
events.onKeyDown(keyName, listener)
keyName:要监听的按键名称
listener (Function):按键监听器。参数为一个KeyEvent。
注册一个按键监听函数,当有keyName对应的按键被按下会调用该函数。可用的按键名称参见Keys。
例如:
events.observeKey();
events.onKeyDown("volume_up", function(event){
toast("音量上键被按下了");
});
events.onKeyDown("menu", function(event){
toast("菜单键被按下了");
exit();
});
注册一个按键弹起监听函数
events.onKeyUp(keyName, listener)
keyName (string): 要监听的按键名称
listener (Function): 按键监听器。参数为一个KeyEvent。
注册一个按键监听函数,当有keyName对应的按键弹起会调用该函数。可用的按键名称参见Keys。
一次完整的按键动作包括了按键按下和弹起。按下事件会在手指按下一个按键的"瞬间"触发, 弹起事件则在手指放开这个按键时触发。
例如:
events.observeKey();
events.onKeyDown("volume_down", function(event){
toast("音量上键弹起");
});
events.onKeyDown("home", function(event){
toast("Home键弹起");
});
设置按键屏蔽是否启用
events.setKeyInterceptionEnabled([key, ]enabled)
enabled :(boolean)
key:要屏蔽的按键
设置按键屏蔽是否启用。所谓按键屏蔽指的是,屏蔽原有按键的功能,例如使得音量键不再能调节音量,但此时仍然能通过按键事件监听按键。
如果不加参数key则会屏蔽所有按键。
例如,调用events.setKeyInterceptionEnabled(true)会使系统的音量、Home、返回等键不再具有调节音量、回到主页、返回的作用,但此时仍然能通过按键事件监听按键。
该函数通常于按键监听结合,例如想监听音量键并使音量键按下时不弹出音量调节框则为:
events.setKeyInterceptionEnabled("volume_up", true);
events.observeKey();
events.onKeyDown("volume_up", ()=>{
log("音量上键被按下");
});
注册一个触摸监听函数
listener (Function):参数为Point的函数
注册一个触摸监听函数。相当于on("touch", listener)。
例如:
events.observeTouch();
events.onTouch(function(p){
log(p.x + ", " + p.y);
});
当有按键被按下或弹起时会触发该事件
keyCode:键值
event (KeyEvent): 事件
当有按键被按下或弹起时会触发该事件。 例如:
auto();
events.observeKey();
events.on("key", function(keyCode, event){
});
其中监听器的参数KeyCode包括:
keys.home 主页键
keys.back 返回键
keys.menu 菜单键
keys.volume_up 音量上键
keys.volume_down 音量下键
例如:
auto();
events.observeKey();
events.on("key", function(keyCode, event){
if(keyCode == keys.menu && event.getAction() == event.ACTION_UP){
toast("菜单键按下");
}
});