cordova 扫码报错:scan is already in progress
公司APP使用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); 相关推荐
  绿豆饼    2020-07-28  
   malonely    2020-07-20  
   chenxiangpeng    2020-04-30  
   kfq00    2020-04-10  
   malonely    2020-01-19  
   liujia    2019-12-27  
   chunianyo    2019-12-14  
   kfq00    2014-06-30  
   朱莉的乔夫    2015-03-26  
   kehongyong    2015-05-12  
   Go贝壳    2015-06-14  
   莫封洛    2015-06-13  
   shichong    2015-05-14  
   MonkeyKingBi    2015-10-30  
   百度通告    2015-12-26  
   welldum    2019-09-07  
   inyiyi    2018-09-05  
   Matrox    2018-09-21