0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WebアプリでQRコードを読み込む

Posted at

はじめに

AngularのWebアプリケーションでQRコードを読み込む機能を作ります。
作ると言っても、 @zxing/ngx-scanner を組み込むだけでとても簡単です。

パッケージの追加

Getting Started ページを参考に、Angularのバージョンに対応した ngx-scanner をインストールします。 browser と library は latest で問題ないようです。

npm install @zxing/browser@latest --save
npm install @zxing/library@latest --save
npm install @zxing/ngx-scanner@{対応したバージョン} --save

app.module.ts もしくは任意の *.module.ts に、以下のようにモジュールを追記します。

import { NgModule } from '@angular/core';
// ...
import { ZXingScannerModule } from '@zxing/ngx-scanner';

@NgModule({
  imports: [
    // ...
    ZXingScannerModule,
  ],
})

コンポーネントの作成

ここではQRコードリーダーのコンポーネントとして qr-reader を作ります。

ng generate component qr-reader

qr-reader.compoment.ts には、読み取り結果の変数 readString と 読み取り成功時のイベントハンドラを作成します。

import { Component } from '@angular/core';

@Component({
  selector: 'app-qr-reader',
  templateUrl: './qr-reader.component.html',
  styleUrls: ['./qr-reader.component.scss']
})
export class QrReaderComponent {
  readString: string = '';

  scanSuccessHandler(readStr: string) {
    this.readString = readStr;
  }
}

qr-reader.component.html には zxing-scanner と読み取り結果を配置します。

<zxing-scanner
  (scanSuccess)="scanSuccessHandler($event)">
</zxing-scanner>
<div>
  読取結果:{{readString}}
</div>

これだけです。

あとはお好きなように

カメラがついているPCやスマートフォンなどでこのコンポーネントを表示すると、カメラが起動し、QRコードをカメラに写るようにすると、QRコードが読み取られてQRコードに入っている文字列が「読取結果」に表示されます。

これだけだとごくシンプルな内容ですが、イベントハンドラに処理を書けば、QRコードの内容によっていろいろできます。

その他、カメラが無かった場合や、インカメラとアウトカメラの切り替えなど、 Advanced Usage を参考に作ることができます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?