事件 Events
Events 是统一事件总线。可监听按键、屏幕亮灭、无障碍事件和窗口切换;也可用 emit 派发自定义事件。多数系统事件依赖无障碍;按键还需先 observeKey(),且无障碍服务配置允许过滤按键。脚本结束会自动清理监听。
javascript
Events.observeKey();
Events.on('key_down', function (e) {
console.log(e.key, e.keyCode);
});| 方法 | 作用 |
|---|---|
observeKey() | 开始观察按键 |
ignoreKey() | 停止观察按键 |
isObservingKey() | 是否正在观察按键 |
on(event, cb) | 持续监听 |
once(event, cb) | 只触发一次 |
emit(event, ...args) | 派发事件(系统或自定义) |
off(event) | 移除该事件全部监听 |
off(event, cb) | 移除指定回调 |
removeAllListeners() | 清空全部监听 |
事件名
| 事件 | 回调 | 说明 |
|---|---|---|
key_down | (event, keyCode) | 键按下 |
key_up | (event, keyCode) | 键抬起 |
key | (event, keyCode) | 按下与抬起 |
screen_on | 无参 | 亮屏 |
screen_off | 无参 | 灭屏 |
accessibility | (obj, eventType) | 无障碍事件 |
window_changed | (obj) | 窗口状态变化 |
| 自定义名 | (...args) | 用 emit 自行派发 |
按键 event 含:keyCode、action、key(如 volume_up)、repeatCount。
observeKey()
返回: {void}
开始观察按键。未调用时不会派发 key_down / key_up / key。
javascript
Events.observeKey();ignoreKey()
返回: {void}
停止观察按键。
isObservingKey()
返回: {boolean}
on(event, callback)
参数:
event {string}事件名callback {function}回调
返回: {void}
javascript
Events.on('screen_off', function () {
console.log('屏幕灭了');
});
Events.on('window_changed', function (obj) {
console.log(obj.packageName, obj.className);
});emit(event, ...args)
参数:
event {string}事件名(系统名或自定义名)...args可选,原样传给监听回调
返回: {void}
javascript
Events.on('task_done', function (name, ok) {
console.log(name, ok);
});
Events.emit('task_done', 'login', true);事件名会规范化:去首尾空白、转小写、- 变 _。
once(event, callback)
参数: 同 on
返回: {void}
只触发一次后自动移除。
off(event) / off(event, callback)
参数:
event {string}事件名callback {function}可选,指定要移除的回调
返回: {void}
removeAllListeners()
返回: {void}
清空全部监听并停止按键观察。任务脚本里长监听请用定时器保活;脚本结束也会自动清理。
