Angular – Barcode Scanner in ionic 2

angularbarcode-scannerionic2qr-code

I am try to scan barcode using barcode scanner in android mobile using ionic2. I am a new learner of ionic. I tried some code,

home.ts

  import { Component } from '@angular/core';

  import { NavController } from 'ionic-angular';
  declare var cordova:any;
  @Component({
  selector: 'page-home',
  templateUrl: 'home.html'
  })
  export class HomePage {

  constructor(public navCtrl: NavController) {

  }

  scan() {
  var me = this;
  if (cordova.plugins.barcodeScanner) {
    cordova.plugins.barcodeScanner.scan((imageData) => {
        alert(imageData.text);

    }, (error) => {
        alert("An error happened -> " + error);         
    });
  }

  }
  }

home.html

  <ion-navbar *navbar>
  <ion-title>
    Home
  </ion-title>
  </ion-navbar>

 <ion-content class="home">
 <button primary (click)="scan()">Scan</button>
 </ion-content>

But I got an error is 'Cannot find variable: Cordova'.

I used this plugin –

https://ionicframework.com/docs/v2/native/barcode-scanner/

for barcode scanner in ionic2

Thank you for the answer.

Best Answer

You need to add:

import { BarcodeScanner } from 'ionic-native';

after that you can use BarcodeScanner.scan() methods to get the information from a barcode or qr code. Try this code: home.ts

import { Component } from '@angular/core';    
import { NavController } from 'ionic-angular';
import { BarcodeScanner } from 'ionic-native';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

  constructor(public navCtrl: NavController) {}

  click() {
    BarcodeScanner.scan()
      .then((result) => {
        alert(
          "We got a barcode\n" +
          "Result: " + result.text + "\n" +
          "Format: " + result.format + "\n" +
          "Cancelled: " + result.cancelled
        )
      })
      .catch((error) => {
        alert(error);
      })
  }
}

home.html

<ion-header>
  <ion-navbar>
    <ion-title>
      Ionic Blank
    </ion-title>
  </ion-navbar>
</ion-header>

<ion-content padding>
  <h1>Scan</h1>
  <button block (click)="click()" color="primary">Scan</button>
</ion-content>
Related Topic