昨今、オンラインでの情報入力の機会が増えています。
しかし、長いURLやテキストを手動で入力するのは面倒で時間がかかりますよね。
そんな悩みを解決するのが、QRコードを使ったWeb入力支援機能です。
まずは、次のページで実際に試してみてください。
QRコードスキャンで簡単に情報を入力
この機能は、入力支援機能となります。
もちろん、手動で普通に入力しても良いです。
でも、スマホの場合は入力するのが面倒過ぎます。。。
そんなときは、入力したい情報をQRコードに変換します。
そのQRコードをWebページ上のアイコンをクリックして表示されるスキャナーで読み取ります。
そうすると、読み取った情報が自動的に入力フィールドに挿入されます。
QRコードの作成については、いろいろな方法があります。
私はセキュリティを考慮して、ツールを自作しています。
自作と言っても、開発に30分もかかっていません。
実装方法
この機能は、HTML、CSS、JavaScriptを組み合わせて実装されています。
技術的な詳細は、以下の記事で説明しています。
ここでは、冒頭で示した画面で用いているコードを簡単に説明します。
上記記事のコードをより汎用化して使いやすくしています。
HTML
index.html
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>QRコード入力補助</title> <script src="https://unpkg.com/@zxing/library@latest"></script> <link rel="stylesheet" href="style.css"> </head> <body> <h1>QRコード入力補助</h1> <div class="input-container"> <input type="text" id="inputText" class="qr-input" placeholder="テキストを入力してください"> <img src="qr-icon.png" alt="QRコードアイコン" class="qr-icon" data-target="inputText"> </div> <div class="input-container"> <textarea id="inputTextarea" class="qr-input" placeholder="テキストエリアに入力してください"></textarea> <img src="qr-icon.png" alt="QRコードアイコン" class="qr-icon" data-target="inputTextarea"> </div> <div id="popup" class="popup"> <div class="popup-content"> <span class="close-button">×</span> <video id="video"></video> </div> </div> <script src="script.js"></script> </body> </html>
HTMLファイル(index.html)では、入力フィールドとテキストエリア、それぞれに対応するQRコードアイコン、QRコードスキャナーのビデオを表示するポップアップ用のdiv要素を定義しています。
あとは、必要なファイルのjsファイルの読み込みですね。
CSS
style.css
/* style.css */ body { margin: 0; padding: 0; font-family: Arial, sans-serif; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; background-color: #f0f0f0; } h1 { font-size: 24px; margin-bottom: 20px; } .input-container { display: flex; align-items: center; margin-bottom: 20px; width: 100%; max-width: 400px; } .qr-input { padding: 10px; font-size: 18px; border: 1px solid #ccc; border-radius: 5px; margin-right: 10px; width: 100%; resize: vertical; } .qr-icon { width: 36px; height: 36px; cursor: pointer; } .popup { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); display: flex; justify-content: center; align-items: center; z-index: 9999; opacity: 0; pointer-events: none; transition: opacity 0.3s; } .popup.show { opacity: 1; pointer-events: auto; } .popup-content { background-color: white; padding: 20px; border-radius: 5px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); position: relative; } .close-button { position: absolute; top: 10px; right: 10px; font-size: 20px; color: #888; cursor: pointer; } video { width: 100%; max-width: 400px; border-radius: 5px; }
CSSファイル(style.css)では、入力フィールド、QRコードアイコン、ポップアップなどの要素のスタイルを設定しています。
レイアウトやサイズ、色などを調整することで、見やすく使いやすいデザインを実現しています。
JavaScript
script.js
// script.js const popup = document.getElementById('popup'); const videoElement = document.getElementById('video'); const closeButton = document.querySelector('.close-button'); const qrIcons = document.querySelectorAll('.qr-icon'); let codeReader; let currentInput; qrIcons.forEach(icon => { icon.addEventListener('click', () => { currentInput = document.getElementById(icon.dataset.target); openQRCodeReader(); }); }); closeButton.addEventListener('click', closeQRCodeReader); function openQRCodeReader() { popup.classList.add('show'); startQRCodeReader(); } function closeQRCodeReader() { popup.classList.remove('show'); stopQRCodeReader(); } function startQRCodeReader() { codeReader = new ZXing.BrowserQRCodeReader(); codeReader.decodeFromVideoDevice(null, videoElement, onQRCodeDecoded); } function stopQRCodeReader() { if (codeReader) { codeReader.reset(); codeReader = null; } } function onQRCodeDecoded(result, err) { if (result) { currentInput.value = result.text; closeQRCodeReader(); } if (err && !(err instanceof ZXing.NotFoundException)) { console.error(err); } }
JavaScriptファイル(script.js)が、QRコード入力支援の中核を担っています。
主な機能は以下の通りです。
- QRコードアイコンがクリックされたときに、QRコードリーダーのポップアップを開き、デバイスのカメラを使ってQRコードのスキャンを開始します。
- QRコードが正常にスキャンされると、デコードされたテキストを対応する入力フィールドに挿入し、QRコードリーダーを閉じます。
- ポップアップの閉じるボタンがクリックされたときに、QRコードリーダーを閉じます。
また、QRコードの読み取りには、ZXingというオープンソースのライブラリを活用しています。
活用シーン
このQRコードを使ったWeb入力支援機能は、さまざまな場面で活躍します。
- 長いURLをQRコードで素早く入力
- 製品の型番やシリアルナンバーをQRコードから読み取って入力
- イベントの参加登録で、QRコードに埋め込まれた情報を活用
上記のような手入力が面倒な場面で大きな力を発揮するでしょう。
まとめ
QRコードを活用したこの入力支援機能は、Webページでの情報入力を大幅に効率化します。
ユーザーは面倒な手入力から解放され、ストレスなくデータを入力できるようになるでしょう。
今回ご紹介したコードを参考に、ぜひ自分のWebサイトにもこの機能を取り入れてみてください。
今後は、このような革新的なアプローチが、より多くのWebサイトやサービスで採用されていくことが期待されます。
面倒な手入力とはこれでさようならです!