Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { Component } from '@angular/core';
- import { AlertController, NavController, NavParams, ToastController } from 'ionic-angular';
- import { QrScannerProvider } from '../../providers/qr-scanner/qr-scanner';
- import 'rxjs/add/operator/mergeMap';
- import { QRScanner, QRScannerStatus } from '@ionic-native/qr-scanner';
- import { Observable } from 'rxjs/Observable';
- import { SuperTabsController } from 'ionic2-super-tabs';
- import { ToastProvider } from '../../providers/toast/toast';
- import { fromPromise } from 'rxjs/observable/fromPromise';
- import { Observer } from 'rxjs/Observer';
- @Component({
- selector: 'page-qr-scanner',
- templateUrl: 'qr-scanner.html',
- })
- export class QrScannerPage {
- private isScanning: boolean = false;
- constructor(public navCtrl: NavController,
- public navParams: NavParams,
- private qrScanner: QrScannerProvider,
- private toastProvider: ToastProvider,
- private alertCtrl: AlertController) {
- }
- ionViewDidEnter() {
- this.showPermissionAlert().flatMap(_ => {
- return this.qrScanner.prepare();
- }).flatMap((status: QRScannerStatus) => {
- if (status.denied) {
- return Observable.throw("unauthorized")
- }
- if (status.authorized) {
- this.isScanning = true;
- return this.qrScanner.startScanning();
- }
- }).subscribe(this.handleSuccess.bind(this), this.handleError.bind(this));
- }
- private handleError(error: string) {
- switch (error) {
- case 'cordova_not_available':
- this.toastProvider.showToast("NOT_ON_MOBILE_ERROR");
- break;
- }
- if (error == "cordova_not_available") {
- }
- }
- private handleSuccess(data: string) {
- alert(data);
- }
- private showPermissionAlert(): Observable<any> {
- return Observable.create((observer: Observer<boolean>) => {
- let alert = this.alertCtrl.create({
- title: 'Camera permission',
- subTitle: 'Please press allow at the upcoming popup to allow Shorty to use your camera',
- buttons: [
- {
- text: "Got it!",
- handler: _ => {
- observer.next(true);
- observer.complete();
- }
- }
- ]
- });
- alert.present();
- });
- }
- }
Add Comment
Please, Sign In to add comment