0
Ionic 3.19でBarcodeScannerを設定する際に問題が発生しています。これはこれまでの私のコードです。テストデバイスは、Android 6.0.1を実行しているLG Nexus 5です。私はCordova 7.0.1を実行しています。Android 6.0.1でCordovaバーコードスキャナが動作しない
次の実装はブラウザでは正常に機能しますが、電話では「許可が与えられました」と表示され、バーコードスキャナのカメラが表示されません。
預金money.ts
import { Component } from '@angular/core';
import { ModalController } from 'ionic-angular';
import { BarcodeScanner, BarcodeScannerOptions } from '@ionic-native/barcode-scanner';
import { AndroidPermissions } from '@ionic-native/android-permissions';
import { ScanQRCodeModal } from '../scan-qr-code/scan-qr-code';
@Component({
selector: 'page-deposit',
templateUrl: 'deposit-money.html'
})
export class DepositMoneyPage {
options: BarcodeScannerOptions;
scanData: {};
constructor(private barcodeScanner: BarcodeScanner,
private androidPermissions: AndroidPermissions,
private modalCtrl: ModalController) {
}
checkCameraPermissions() {
this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.CAMERA).then(
success => { alert('Permission granted'); this.scanQRCode()},
err => { alert('asking for permisison'); this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.CAMERA) }
);
}
scanQRCode() {
this.options = {
prompt : "Scan your voucher code"
}
this.barcodeScanner.scan(this.options).then((barcodeData) => {
console.log(barcodeData);
this.scanData = barcodeData;
}, (err) => {
console.log("Error occured: " + err);
});
}
showScanQRCodeModal() {
let scanQRCodeModal = this.modalCtrl.create(ScanQRCodeModal);
scanQRCodeModal.present();
}
}
預金money.html
<ion-header>
<ion-navbar>
<ion-title>
Deposit Money
</ion-title>
</ion-navbar>
</ion-header>
<ion-content>
<ion-list>
<button ion-item (click)="checkCameraPermissions()">Scan QR Code</button>
</ion-list>
<div *ngIf="scanData">
<p>Scanned Text: {{scanData.text}}</p>
<p>Scanned Format: {{scanData.format}}</p>
</div>
</ion-content>