0

我有一个基于 servlet 的 Web 应用程序,它为在客户站点上运行的摩托罗拉 RF 条码扫描仪提供网页,他们仍在使用 Symbol Pocket Browser 而不是更新的 Enterprise Browser。我对此没有任何控制权。

该应用程序多年来一直运行良好,因为它只需要使用 EAN128 条码规则扫描一个​​ 20 位数字字符串即可。

我在 html 中使用元命令,以便当用户扫描数据时,将解码后的值输入屏幕上的活动输入框中,然后执行自动输入。一切正常。

我现在需要扫描一个更复杂的 EAN-128 条形码,其中包含多个应用程序标识符,最重要的是其中一个字段是可变长度的,并以 FNC1 字符结尾。当 SPB 扫描此条形码时,返回的数据没有任何字段分隔符,因此无法正确解码数据。

我现在可以在网上找到的只是 RhoElements 和最新的企业浏览器的文档,我看不到一种在不丢失重要分隔符的情况下读取数据的方法。

我认为它可能在数据被解码时运行一些javascript,并且可能将数据保存在我的servlet可以访问的会话变量中 - 但我正在盲目工作。

有没有人遇到过这种情况并且可以提供有效的示例 html/javascript 或者可能是 SPB 文档(编程指南)的链接?

4

1 回答 1

0

您仍然可以从Zebra Technologies 支持网站下载 PocketBrowser v3.x (Zebra Technologies 于 2014 年 10 月收购了 Motorola Solution Enterprise Business)。

下载包包括 PocketBrowser 指南。

我们强烈建议现有用户升级到支持更新操作系统和设备的企业浏览器,尽可能保持与现有 Symbol、Motorola、Zebra 设备的兼容性。

对于“Symbol Pocket Browser v2.x”,您可以使用“scannernavigate”META 标签,当扫描仪或成像仪成功解码条形码或符号时,该标签会导航到 URL 或调用 JavaScript 函数。

以下示例在页面上设置扫描仪以在成功解码后调用 JavaScript 函数:

<META HTTP-Equiv="scanner" Content="enabled">
<META HTTP-Equiv="scannernavigate" Content="javascript:doScan('%s', '%s', %s, '%s', %s);">

<script>
   function doScan(data, source, type, time, length)
   {
      if(type == 0x35) //ean 13
      {
         alert('Please scan a non EAN 13 code!');
      }
      else
      {
         var amount = prompt('Enter an amount for code: ' + data', '');
      }
   }
</script>

免责声明:我在 Zebra Technologies 工作

更新了涵盖 Symbol Pocket Browser v2.x 语法的答案

于 2017-10-28T13:59:30.050 回答