扫码封装

(1) 封装前

  • index.vue
//前置扫码
frontScan:function(){
    // #ifndef H5

    const myScanCode = uni.requireNativePlugin('My-ScanCode');
    var options = {
        scanType:['QR','EAN13','EAN8','PDF_417'],//扫码类型
        prompt:'将二维码/条形码放入框内,即可自动扫描',//扫码提示语
        //locked:true,//方向是否锁定、旋转(默认true)
        //beepEnabled:true,//扫码完成是否有提示音(默认true)
        //imageEnabled:false,//扫码成功时是否保存二维码图片(默认false)
        //cameraId : 1, //使用指定的相机ID(摄像头前1后0,默认0)
        cameraId : _self.cameraId,  // this.getCameraId()
    };
    myScanCode.scanCode(options, res => {//{"result":"https://qr.alipay.com/cpx05564fwylkybgq7dxjb9","scanType":"QR_CODE","success":"true"}
        console.log("扫码res:" + JSON.stringify(res));
        uni.showModal({
            title: '条码类型:' + res.scanType + "",
            content: '条码内容:' + res.result + ""
        });
    });
            
    // #endif   
},

(2) 封装后

  • index.vue
//前置扫码
frontScan:function(){
    // #ifndef H5

    _self.gotoScanCode({
        success:function(res){
            console.log("扫码res:" + JSON.stringify(res));
            uni.showModal({
                title: '条码类型:' + res.scanType + "",
                content: '条码内容:' + res.result + ""
            }); 
        }
    });
            
    // #endif   
},
  • main.js
Vue.prototype.gotoScanCode = function(param){
    const myScanCode = uni.requireNativePlugin('My-ScanCode');
    var cameraId_string = this.getCameraId();
    var cameraId_int = parseInt(cameraId_string);
    
    var options = {
        scanType:['QR','EAN13','EAN8','PDF_417'],//扫码类型
        prompt:'将二维码/条形码放入框内,即可自动扫描',//扫码提示语
        // locked:true,//方向是否锁定、旋转(默认true)
        // beepEnabled:true,//扫码完成是否有提示音(默认true)
        // imageEnabled:false,//扫码成功时是否保存二维码图片(默认false)
        // cameraId : 1, //使用指定的相机ID(摄像头前1后0,默认0)
        cameraId : cameraId_int,
    };
    myScanCode.scanCode(options, res => {//res:{"result":"https://qr.alipay.com/cpx05564fwylkybgq7dxjb9","scanType":"QR_CODE","success":"true"}
        console.log("gotoScanCode-扫码res:" + JSON.stringify(res));
        // uni.showModal({
        //  title: '条码类型:' + res.scanType + "",
        //  content: '条码内容:' + res.result + ""
        // });
        if(res.result && res.result != "" && res.result != "用户取消" ){
            typeof param.success == "function" && param.success(res);
        }
    });
    
    // switch (cameraId_int){
    //  case 0:
    //      // uniapp横屏扫码摄像头成像会旋转90
    //      uni.scanCode({
    //          success: function (res) {
    //              console.log('条码类型:' + res.scanType);
    //              console.log('条码内容:' + res.result);
    //              // uni.showModal({
    //              //  title: '条码类型:' + res.scanType + "",
    //              //  content: '条码内容:' + res.result + ""
    //              // });
    //              if(res.result && res.result != "" && res.result != "用户取消" ){
    //                  typeof param.success == "function" && param.success(res);
    //              }
    //          }
    //      });
    //      break;
    //  default:
    //      var options = {
    //          scanType:['QR','EAN13','EAN8','PDF_417'],//扫码类型
    //          prompt:'将二维码/条形码放入框内,即可自动扫描',//扫码提示语
    //          // locked:true,//方向是否锁定、旋转(默认true)
    //          // beepEnabled:true,//扫码完成是否有提示音(默认true)
    //          // imageEnabled:false,//扫码成功时是否保存二维码图片(默认false)
    //          // cameraId : 1, //使用指定的相机ID(摄像头前1后0,默认0)
    //          cameraId : cameraId_int,
    //      };
    //      myScanCode.scanCode(options, res => {//res:{"result":"https://qr.alipay.com/cpx05564fwylkybgq7dxjb9","scanType":"QR_CODE","success":"true"}
    //          console.log("gotoScanCode-扫码res:" + JSON.stringify(res));
    //          // uni.showModal({
    //          //  title: '条码类型:' + res.scanType + "",
    //          //  content: '条码内容:' + res.result + ""
    //          // });
    //          if(res.result && res.result != "" && res.result != "用户取消" ){
    //              typeof param.success == "function" && param.success(res);
    //          }
    //      });
    //      break;
    // }
    
}

你可能感兴趣的:(扫码封装)