Chromebookで作るPWAアプリ日記11
こんにちは、junkawaです。
バーコード商品検索アプリが完成しました。
今後は、カメラから直接バーコードを読み込む機能の追加を考えています。
使用したライブラリ
バーコード解析ライブラリとして、quaggaJSを使うことにしました。
dist/quagga.min.js をダウンロードして使う。npm install quagga は使わない。
const Quagga = require('quagga.min').default;
npm installした時のやり方だと、上手く動かない。
ドキュメントにしたがって、index.htmlの方に <script src="js/quagga.min.js"></script> と書くことで解決。
webpackで生成した bundle.js で Quagga.xxx を呼び出すのですが、bundle.jsより先に quagga.min.js を呼び出す必要があります。
<script src="js/quagga.min.js" defer></script>
<script src="js/bundle.js" defer></script>
今までは async としていたのですが、quagga.min.js と bundle.js の呼び出し順序を決めたいので、deferを使って解決。
JANコードから商品名を検索するWeb APIサービスに、楽天を追加
const appId = '<アプリケーションID>';
const url = 'https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706?format=json&applicationId='+appId+'&keyword='+jan;
const response = UrlFetchApp.fetch(url);
Google Apps Scriptで上記のようにしてJANから商品情報を取得しています。
const searchData = JSON.parse(response.getContentText());
searchData.Items[i].Item.itemName;
商品名を取り出します。
str.replace(/ /g,' ').replace(/【.*?】/g,'').trim().split(/ /);
商品名 str をスペースで区切ってキーワードに分けます。
最初のreplaceで全角スペースを半角スペースに変換しています。
次のreplaceで【】で区切られた文字(例:【送料無料】)を削除しています。
最後のtrimで先頭と末尾のスペースを削除しています。
ヒットした商品名のキーワードを数え上げ、しきい値以上出現したキーワードを返しています。
取得できたキーワードの例です。
ご覧下さりありがとうございます。いただいたサポートは図書館への交通費などに使わせていただきます。