更新时间:2022-11-15 16:39:50收藏订阅更新我的文档设置返回文档简介my.ix.keyeventchange 为监听按键事件的 api。按键事件表示键盘、扫码枪等能够通过按键或扫码等方式向设备输入字符的动作。调用监听按键事件接口主要分为两步:1开启按键事件监听。2关闭按键事件监听。使用限制监听按键事件支持蜻蜓 f4 蓝牙键盘、usb 键盘和扫码枪。有关使用本接口实现扫码枪接入的示例请查看 。接口调用开启按键事件监听my.ix.onkeyeventchange 开启按键事件监听。示例代码.js 示例代码javascript复制代码91234567// .jsmy.ix.onkeyeventchange((r) => { if (r.keycode === 131) my.showtoast({content: 'amount: ' r.amount}); else my.showtoast({content: 'keycode: ' r.keycode});});入参属性类型必填描述listenerfunction是按键事件产生时被回调的方法。回调参数属性类型描述keycodenumber模拟键盘按键的代码值,keycode 参数的值是字符输入设备(如:键盘,扫码枪等)输入的字符在 iot 小程序中的代码值,详细代码值如下 keycode 参数代码表 所示。amountstringamount 只会在 keycode = 131 时存在,蜻蜓 f4 蓝牙键盘最多支持 8 位金额。keycode 参数代码表keycode描述键盘模拟7keycode - 7 = 0,表示按键00(仅扫码枪支持输入)8keycode - 7 = 1,表示按键11(仅扫码枪支持输入)9keycode - 7 = 2,表示按键22(仅扫码枪支持输入)10keycode - 7 = 3,表示按键33(仅扫码枪支持输入)11keycode - 7 = 4,表示按键44(仅扫码枪支持输入)12keycode - 7 = 5,表示按键55(仅扫码枪支持输入)13keycode - 7 = 6,表示按键66(仅扫码枪支持输入)14keycode - 7 = 7,表示按键77(仅扫码枪支持输入)15keycode - 7 = 8,表示按键88(仅扫码枪支持输入)16keycode - 7 = 9,表示按键99(仅扫码枪支持输入)66确认enter131收款f1 金额 enter132刷脸f2133取消f3134设置f4135退款f5(仅随机 usb 键盘支持)136账单f6(仅随机 usb 键盘支持)注意:alipay k1 键盘通过 usb 连接蜻蜓设备时,收款、刷脸、取消、设置等 4 个按钮会同时触发3个按键事件,其中前面 2 个事件(keycode=113 /57)需要忽略掉。例如按键收款会监听到 3 个事件:●{"action":0,"keycode":113}●{"action":0,"keycode":57}●{"action":0,"amount":"0.01","keycode":131}关闭按键事件监听my.ix.offkeyeventchange 关闭按键事件监听。示例代码.js 示例代码关闭按键事件监听的 api 在代码中只能直接调用,不可以有任何参数。监听按键事件 api 调用说明每个 page 只需要在 onshow 的时候执行 onkeyeventchange,在 onhide 的时候执行 offkeyeventchange 按键事件是全局事件,建议查看下文 监听按键事件示例代码 做逻辑注册;也可以每个 page 在 onshow 注册,在 onhide 取消注册(切记不要多次 onkeyeventchange 或遗漏 offkeyeventchange,否则会造成按键事件回调被多次执行;也不要遗漏 onhide,否则多页面跳转时多个页面都会收到按键事件)。 另外如果不在 onhide 的时候取消注册,在某些连续返回的场景(navigateback 带有 delta 参数)会多页面派发按键事件,导致逻辑异常。监听按键事件示例代码1首先创建 utils/ix.js。2在所有需要用到按键的 page.js 开头加上 import, 并实现关键方法 onkeypress。3按上述实现,所有按键的事件就会随着页面自动分配,可以避免出现重复注册或未注册的问题。