You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Genexus普通web面板中通过网页调用条码扫描器并获取返回结果

GeneXus Web面板触发条码扫描的可行方案

原生Scanner对象确实仅支持智能设备(Android/iOS)面板调用,普通Web面板可通过以下两种方案实现扫码需求:

  • 方案1:集成第三方前端扫码库(适配所有GeneXus版本)
    1. 在Web面板添加自定义按钮,点击事件绑定自定义JS触发方法
    2. 引入前端条码解析库(如zxing-js)到Web面板资源中
    3. 点击按钮时调用HTML5 navigator.mediaDevices.getUserMedia() 接口唤起设备摄像头,实时解析视频流中的条码内容
    4. 解析完成后将结果回写到GeneXus业务变量即可,参考代码示例:
    async function triggerScan() {
      const codeReader = new ZXing.BrowserMultiFormatReader();
      try {
        // 调用摄像头扫码,返回结果
        const scanResult = await codeReader.decodeOnceFromVideoDevice(undefined, "video-dom-id");
        // 将扫描结果赋值给GeneXus变量
        gx.context.setValue("ReceiveScanResultVar", scanResult.text);
        codeReader.reset();
      } catch (error) {
        console.log("扫描终止或失败:", error);
      }
    }
    
  • 方案2:使用高版本GeneXus自带Web扫码控件
    如果你使用的是GeneXus 17 Update 10及以上版本,可直接使用官方提供的Web Barcode用户控件:
    1. 把控件拖拽到Web面板指定位置,绑定接收扫描结果的变量
    2. 给按钮的点击事件配置调用该控件的StartScan()方法
    3. 扫码完成后控件会自动将识别到的条码内容写入绑定的变量

注意:以上两种方案都要求Web应用部署在HTTPS环境下(localhost本地开发场景除外),否则浏览器会出于安全限制禁止调用摄像头权限。

内容的提问来源于stack exchange,提问作者Nicola

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:36:03