微信小程序 扫码功能的实现

2019-11-06  本文已影响0人  画舫烟中浅
const app = getApp();
   //扫码功能
function scanAction() {
  wx.scanCode({
     onlyFromCamera: false,
    scanType: ['qrCode', 'barCode', 'datamatrix', 'pdf417'],
       //结果处理
    success: res => dealScanCode(res.result),
    fail: (e) => {
        if (e && e.errMsg && e.errMsg.indexOf('scanCode:fail cancel') != -1) {
            return;
        }
        wx.showToast({ title: '扫码失败', icon: 'none', })
    }
  });
}


 // 判断连接
 function dealScanCode(result) {
   app.log("scan:" + result)
   if (!result || !result.lastIndexOf) {
       wx.showToast({ title: '二维码错误', icon: 'none', duration: 2000 })
      return;
    }

    // 具体的连接处理
      if (result.lastIndexOf('synthetical=') != -1) {
       bindAccount(result);
       return;
      }
  
 //无效的二维码
  wx.showToast({ title: '二维码错误', icon: 'none', duration: 2000 })
 }


   //处理连接
   function bindAccount(param){
    // 截取字符串
    let groupNum = getUrlParam(param, 'chatID')
   let groupType = getUrlParam(param, 'type');
   }

   // 提供外部的接口
    module.exports = {
       scanAction,
     dealScanCode,
     getUrlParam
    }


  // 正则表达式截取字符串的方法
    function getUrlParam(url, name) {
       // 正则筛选地址栏
       let reg = new RegExp("(^|&|/?|//)" + name + "=([^&]*)(&|$)");
      // 匹配目标参数
     let result = url.substr(1).match(reg);
     //返回参数值
      return result ? decodeURIComponent(result[2]) : null;
  }
上一篇 下一篇

猜你喜欢

热点阅读