cordova 扫码报错:scan is already in progress

公司APP使用cordova框架进行开发,在一些功能升级后, 扫码突然报错:scan is already in progress。

cordova 扫码报错:scan is already in progress

   项目之前使用没有发现这个问题,百度了一翻发现这类问题较少,仔细想了想不应该是cordova本身的问题。应该是本次系统升级造成的,极有可能是同时调用多次才会有这样的提示。页面元素是JS动态生成,重点:页面上的“扫描条码”按钮,是采用$this.delegate(‘.lr-btn-outlined‘, ‘tap‘这类动态绑定方法,将点击事件动态绑定上去的。

  研究一翻终于找到了症结所在,原来是动态生成这个button的时候给了一个固定的ID,造成点击一次可能会有多个按钮响应,所以在这里每次动态生成button的的时候给一个不同的ID,问题就解决了。

  如下:ID命名使用_item.field + _index,即可生成不同的ID。

  问题完美解决!

case ‘scanbutton‘:
                    _compontHtml = ‘<div class="lr-edit-grid-row" ><label>‘ + _item.name + ‘</label><button type="button" class="lr-btn-outlined lr-btn-success"  id="‘ + _item.field + _index + ‘">扫描‘ + _item.name + ‘</button ></div>‘;
                    $html.append(_compontHtml);

相关推荐