离子2中的条形码扫描仪

时间:2017-03-14 15:04:13

标签: angular ionic2 qr-code barcode-scanner

我尝试使用ionic2在android mobile中使用条形码扫描器扫描条形码。我是离子的新学习者。我尝试了一些代码,

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>

但我得到一个错误是'找不到变量:Cordova'。

我用过这个插件 -

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

用于ionic2中的条形码扫描器

谢谢你的回答。

7 个答案:

答案 0 :(得分:1)

您需要添加:

import { BarcodeScanner } from 'ionic-native';

之后,您可以使用BarcodeScanner.scan()方法从条形码或qr代码中获取信息。试试这段代码: 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>

答案 1 :(得分:1)

首先导入您的项目:

$ ionic cordova plugin add phonegap-plugin-barcodescanner
$ npm install --save @ionic-native/barcode-scanner

组件文件:

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

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

  constructor(
    private barcodeScanner: BarcodeScanner,
    public navCtrl: NavController) {

  }

  scan() {
   this.barcodeScanner.scan().then((barcodeData) => {
        console.log(JSON.stringify(barcodeData))
      }, (err) => {
       //error
      });
  }

}

答案 2 :(得分:1)

1

$ cordova插件添加phonegap-plugin-barcodescanner

$ npm install --save @ ionic-native / barcode-scanner

2

app.module.ts

import { BarcodeScanner } from '@ionic-native/barcode-scanner';
   @NgModule({

   ......

   providers: [
     BarcodeScanner,
     {provide: ErrorHandler, useClass: IonicErrorHandler}
   ]
 })
 export class AppModule {}

scanner.ts

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

 @Component({
    selector: 'page-contact',
    templateUrl: 'contact.html'
 })
export class ContactPage {
    constructor( public nacCtrl: NavController,
    public NavParams: NavParams,
    private barcodeScanner: BarcodeScanner) { }

  takeScan(){
      this.barcodeScanner.scan().then((barcodeData) => {
      // Success! Barcode data is here
      alert(barcodeData.text);
      console.log("Barcode Format -> " + barcodeData.format);
      console.log("Cancelled -> " + barcodeData.cancelled);

   }, (err) => {
      // An error occurred
     console.log("An error happened -> " + err);
   });
 }

}

答案 3 :(得分:0)

在文档中,您需要执行此操作以使用带有离子2的条形码扫描器

import { BarcodeScanner } from 'ionic-native';

BarcodeScanner.scan().then((barcodeData) => {
    // Success! Barcode data is here
  }, (err) => {
   // An error occurred
});

安装完成后,您需要在ionic-native的页面中导入它,然后调用它来使用其功能。

希望它有所帮助:D

答案 4 :(得分:0)

要使用条形码扫描仪,您必须添加

import { BarcodeScanner } from 'ionic-native';

并创建一个像这样的函数

barcode() {
  BarcodeScanner.scan()
  .then((result) => {
     if (!result.cancelled) {
       alert("Success"+result);
     }
  })
  .catch((err) => {
    alert(err); 
   })
 }

现在您可以在html中的任何地方调用条形码()功能进行扫描

答案 5 :(得分:0)

  

1.将插件添加到您的应用中,见下文

     

离子插件添加phonegap-plugin-barcodescanner

     

npm install --save @ ionic-native / barcode-scanner

     

2.import

     

从'ionic-native'导入{BarcodeScanner};

     

从“xml2js”导入*作为xml2js;

     
      
  1. BarcodeScanner.scan()。then((barcodeData)=&gt; {
  2.         

    var name,uid;

         

    xml2js.parseString(barcodeData.text,{trim:true},function(err,   结果){debugger;

         。

    名= result.PrintLetterBarcodeData $名称;   。UID = result.PrintLetterBarcodeData $ UID;        });

         

    调试器; this.AdharCardName =名; this.AdharcardUid = UID;
      },(错误)=&gt; {

         

    });

答案 6 :(得分:0)

How to create perfect Barcode/QR Scanner. let's do it.

首先,安装

  1. 离子cordova插件添加phonegap-plugin-barcodescanner
  2. npm install --save @ ionic-native / barcode-scanner
  3. npm install @ ionic-native / core --save
  4. cordova平台更新android
  5. 在app.module.ts中完成所有操作...导入 BarcodeScanner 。就像这样    从@ ionic-native / barcode-scanner&#39 ;;

    导入{BarcodeScanner}

    提供者:[     扫码机   ]

    之后,我们必须在您将使用的打字稿文件中声明     从@ ionic-native / barcode-scanner&#39 ;;

    中导入{BarcodeScanner}
    scan(){
          this.barcodeScanner.scan().then((barcodeData) => {
            console.log(JSON.stringify(barcodeData))  
          }, (err) => {  
           //error 
          });
        }
    

    在这种情况下。你可以面对这样的错误,
    ERR_FILE_NOT_FOUND(file:///android_asset/www/index.html):
      main.ts *中的 *意外的标记*
    不要担心..从命令提示符中删除 android / ios插件 。 并安装它 cordova平台更新android

    我希望新的好。 的间谍