ionic2实战

ionic2/3实战-使用二维码扫描插件cordova-plug

2019-01-09  本文已影响208人  昵称已被使用_

前言

插件安装

ionic cordova plugin add phonegap-plugin-barcodescanner
cnpm install --save @ionic-native/barcode-scanner@4.3.2

其中@4.3.2是和项目中的其他插件版本保持一致,我的package.json

import { QRScanner } from '@ionic-native/qr-scanner';
QRScanner

使用插件

    this.qrScanner.prepare().then((status: QRScannerStatus) => {
      if (status.authorized) { // 判断是否有摄像头权限
        let scanSub = this.qrScanner.scan().subscribe((text: string) => {
          this.events.publish('qrscanner:result', text);
          scanSub.unsubscribe();
          this.navCtrl.pop();
        });
        // 打开摄像头
        this.qrScanner.show();
      } else if (status.denied) {
        this.nativeService.alert('没有权限', null, '没有摄像头权限,请前往设置中开启', () => {
          this.qrScanner.openSettings();
        });
      } else {
        this.nativeService.alert('没有权限', null, '没有摄像头权限,请前往设置中开启', () => {
          this.qrScanner.openSettings();
        });
      }
    }).catch((e: any) => console.log('调用二维码扫描插件失败', e));
ion-app.cameraView, ion-app.cameraView ion-content, ion-app.cameraView .nav-decor {
  background: transparent none !important;
  .tabbar.show-tabbar {
    opacity: 0;
  }
}
// 添加cameraView类
 (window.document.querySelector('ion-app') as HTMLElement).classList.add('cameraView');

// 移除cameraView类
(window.document.querySelector('ion-app') as HTMLElement).classList.remove('cameraView');

封装

  scan() {
    // 进入二维码扫描界面
    this.navCtrl.push('QrscannerPage').then(() => {
      // 订阅扫描结果
      this.events.subscribe('qrscanner:result', text => {
        alert('扫描结果:' + text);
      });
    });
  }
上一篇 下一篇

猜你喜欢

热点阅读