未来の自分へ知識谷金

ゆーきのエンジニアブログ
Webプログラミング

バーコードリーダー作ってみたい【JavaScript】【QuaggaJS】

BarcodeGASJavaScriptQuaggaJSWebバーコードリーダー

自宅の物の在庫管理アプリを作りたいなーと思っていた時、簡単にスマホのカメラ等を使ってバーコードリーダーを作れるとのことなので試して見ました。

HTML

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <p id="detected-code">-</p>
    <div id="camera-view"></div>
  </body>
</html>

JavaScript

const elemCameraView = document.getElementById('camera-view');
const elemDetectedCode = document.getElementById('detected-code');

const config = {
  locate: false,
  frequency: 2,
  inputStream: {
    type: 'LiveStream',
    target: elemCameraView,
    constraints: {
      frameRate: 10,
      facingMode: 'environment',
    },
  },
  decoder: {
    readers: ['ean_reader'],
    multiple: false,
  },
};

const OnDetected = async (result) => {
  let code = result.codeResult.code;
  elemDetectedCode.textContent = code;
  if (confirm(code + 'コードを登録しますか?')) {
    // 検出したコードに対する処理
  }
};

Quagga.init(config, (error) => {
  if (error) { console.error(error); return; }
  Quagga.start();
});
Quagga.onDetected(OnDetected);

所感

GAS(Google Apps Script)用のコードなので通常のWebアプリとは違和感があります。JavaScriptの部分はBlazorとかにもそのまま使えそうなので未来の自分のために残しておきます。