我尝试使用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中的条形码扫描器
谢谢你的回答。
答案 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;
- BarcodeScanner.scan()。then((barcodeData)=&gt; {
醇>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.
首先,安装
在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
我希望新的好。 的间谍强>