BarcodeScanner を使用したバーコードのスキャン
BarcodeScanner の以前のバージョンでは、複数のバーコードを連続してスキャンする場合、それぞれのスキャン後にユーザの介入が必要ありませんでしたが、1 つのバーコードをスキャンするスキャンセッションの場合、異なるプログラム手法が必要でした。今回、BarcodeScanner には新しい API が追加され、このような一般的な使用事例のための開発環境が合理化されています。さらに、より効率的に大量のバーコードをスキャンするための新しい機能が追加されています。
このドキュメントでは、従来の API と最新の API という用語を使用します。では、これらがどのような意味を持つかを確認します。
- 従来の API は、関数
beginCapture()
、resumeCapture()
、およびendCapture()
を指します。 - 最新の API は、関数
scan()
およびdismiss()
を指します。
従来の API はまだサポートされていますが、将来のリリースで廃止され、最新の API にすべて置き換えられます。従来の API は、単一スキャンと連続スキャンモードをサポートしていますが、一括スキャンと複数スキャンはサポートしていません。
最新の API は、名前からもわかるように BarcodeScanner に新しく追加されたものです。それらは開発環境を単純化するために開発されたもので、一括スキャンや複数スキャンを含むすべてのスキャンモードをサポートしています。
初めて LWC に BarcodeScanner を追加する場合は、最新の API を使用してください。従来の API を使用するメリットはなく、従来の API の廃止が正式に発表されれば、結局最新の API に切り替えなければならなくなります。
従来の API を使用する既存の LWC がある場合は、できるだけ早く最新の API を使用するようにコードを更新することをお勧めします。そうすることで、より効率的な開発環境を享受でき、また新しい一括スキャンと複数スキャンの機能を利用できます。
次の表は、従来の API とそれに代わる最新の API との関係をまとめたものです。
従来の API | 最新の API | 備考 |
---|---|---|
beginCapture() | scan() | scan() は、beginCapture() と resumeCapture() の両方に置き換わります。 |
resumeCapture() | scan() | |
endCapture() | dismiss() |
最新の API の動作はそのほとんどが従来のものと同じです。scan()
での注目すべき違いの 1 つは、beginCapture()
と比較して、返される Promise の解決方法が違う点です。
beginCapture()
では、返される Promise は 1 つの結果として解決されます。scan()
では、返される Promise は結果の配列として解決されます。一括スキャンと複数スキャンは複数のバーコードを同時に処理するため、最新の scan()
API のみが対応しており、従来の beginCapture()
API は対応していません。
関連トピック