Ionic Native QR Scannerをアプリケーションで使用しようとしています。スキャナが複数のモジュールで必要になるので、スキャナを開いて結果を返すことができる簡単なサービスを構築することをお勧めします。だから、サービスのネストされた約束/オブザーバに依存するサービスを待っています
// inside qrScannerService...
public scanQR(): Promise<void> {
return this.qrScanner.prepare()
.then((status: QRScannerStatus) => {
if (status.authorized) {
let scanSub = this.qrScanner.scan().subscribe((qrResult: string) => {
this.qrScanner.hide();
scanSub.unsubscribe();
// this is what I want, ultimately.
return qrResult;
});
this.qrScanner.show();
} else if (status.denied) {
console.log("denied");
} else {
// permission was denied, but not permanently.
}
})
.catch((e: any) => console.log('Error is', e));
}
:で開始する
、私は上記のリンクで使用可能なサンプルコードを使用しています。 - >scanQR()
- >prepare()
-
private doQRScan() {
this.qrScannerService.scanQR().then(result => {
console.log(result);
});
}
だから私は約束チェーンdoQRScan()
持っている>scan()
を、私はすべての3つの約束/観測に待機する必要があり、または:私のモジュールでは、私はそうは次のようにスキャナサービスを使用します私はサービス方法を再構成する必要がありますが、私はかなりAngularに新しいです、そして、これまでの答えは私を逃してしまいます。
prepare()
は約束を返し、doQRScan()
が満たされているため、実際のQRスキャンは返されません。
アイデア?