ionic 2 中的条码扫描器

Barcode Scanner in ionic 2

我正在尝试使用 ionic2 在 android 移动设备中使用条码扫描仪扫描条码。我是离子的新学习者。我尝试了一些代码,

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>

但是我得到一个错误是'Cannot find variable: Cordova'。

我用过这个插件 -

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

用于 ionic2 中的条码扫描器

谢谢您的回答。

您需要添加:

import { BarcodeScanner } from 'ionic-native';

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

如文档中所述,您需要执行此操作才能使用带 ionic 2 的条码扫描器

import { BarcodeScanner } from 'ionic-native';

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

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

希望对你有帮助:D

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

import { BarcodeScanner } from 'ionic-native';

并创建一个这样的函数

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

现在您可以在 html 中的任何地方调用 barcode() 函数来扫描

1.Add the plugin to your app see below

ionic plugin add phonegap-plugin-barcodescanner

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

2.import

import { BarcodeScanner } from 'ionic-native';

import * as xml2js from "xml2js";

  1. BarcodeScanner.scan().then((barcodeData) => {

var name,uid;

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

name=result.PrintLetterBarcodeData.$.name; uid=result.PrintLetterBarcodeData.$.uid; });

debugger; this.AdharCardName=name; this.AdharcardUid=uid;
}, (err) => {

});

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

首先,安装

  1. ionic cordova 插件添加 phonegap-plugin-barcodescanner
  2. npm install --save @ionic-native/barcode-scanner
  3. npm install @ionic-native/core --save
  4. cordova 平台更新android

全部完成..在 app.module.ts 中导入 BarcodeScanner .like this
从'@ionic-native/barcode-scanner'导入{BarcodeScanner};

供应商:[ 条码扫描器 ]

之后,我们必须在您将使用的打字稿文件中声明
从“@ionic-native/barcode-scanner”导入 { BarcodeScanner};

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

在这种情况下。你可能会遇到这样的错误,
ERR_FILE_NOT_FOUND (文件:///android_asset/www/index.html):
*main.ts*
中的意外标记) 别担心..从命令提示符中删除 android/ios plugin。 并安装它。
cordova 平台更新android

希望新的好。 间谍

首先导入您的项目:

$ 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
      });
  }

}

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);
   });
 }

}