扫码结果回调消息

声明

thread.register_event("xxtouch.scan_code_callback", function(val)
    local ret = json.decode(val) -- 返回的是一个 json 字符串
    if (ret.type == "org.iso.QRCode") then
        -- 扫到一个二维码回调 ret.string 是结果
    else
        -- 其它类型回调可以根据 ret.type 来区分
    end
end)

状态

  • val
    • 当使用扫码器扫到一个能识别的值时,以 xxtouch.scan_code_callback 标识的进程队列词典会推入这个值以及它的相关信息

说明

当扫码器扫到一个能识别的值的时候,这个消息标识的进程队列词典会推入一个状态

示例

-- 清空消息队列
proc_queue_clear("xxtouch.scan_code_callback")
--
local success = utils.open_code_scanner()
if not success then
    sys.alert("可以于 “设置-通用-访问限制” 中取消 “相机” 的访问限制", 0, "无法访问系统相机")
    return
end
--
sys.toast("脚本从现在开始监扫码结果事件,二十秒后取消监听")
--
-- 开始建立监听回调
local eid = thread.register_event("xxtouch.scan_code_callback", function(val)
    local ret = json.decode(val)
    if (ret.type == "org.iso.QRCode") then
        sys.toast("扫到一个二维码\n"..ret.string)
    else
        sys.toast("扫到一个条码\n"..ret.string)
    end
end)
--
sys.msleep(20000) -- 等待 20 秒
--
-- 反注册回调函数,如果不反注册监听,那么脚本不会在此结束
thread.unregister_event("xxtouch.scan_code_callback", eid)

:上述代码中使用了非本章函数 utils.open_code_scannersys.toastsys.msleepproc_queue_clearthread.register_eventthread.unregister_eventjson.decode

results matching ""

    No results matching ""