QA@IT

MobileSafariとbluetoothバーコードリーダの連携について

1992 PV

目的
 MobileSafariで開いたWebページでバーコードを読み込み、テキストボックスに読み取ったバーコードの値を貼り付け、送信したいと考えております。 

準備として
 1)テキストボックスと送信ボタンで構成されたWebページを作成
 2)読み込んだバーコードの前に[、後ろに]を付与するバーコードリーダを準備

動作としては、バーコードを読み込むと
 1)[が読み込まれてテキストボックスの内容をクリアし、テキストボックスにフォーカスを移す
 2)バーコードの値がテキストボックスに入力される
 3)]が読み込まれてJavascriptでsubmit()を行っている関数が呼び出され、画面が遷移する
を実現したかったのですが、パソコンのブラウザ上では意図したとおりに動作したのですがMobileSafariではdocument.onkeypressイベントが動作しないという制限があるためにバーコードを読み込んでも反応しません。

テキストボックスをタップし、キーボードが表示された状態ならバーコードの読み込みに反応するのですが操作に一手間増えるため、避けたい状況です。

何か良い実現方法があれば教えていただけないでしょうか。

UiWebViewなどを使えば実現できそうな気はするのですが、試すにしてもこれから環境構築が必要なことともっと良い方法があればそちらを使いたいと考えております。

どうかよろしくお願いします。

06/11追記
現行の処理ではdocument.onkeypressイベントで入力キーに応じてfocus()、submit()を呼び出しています。
上記の問題以外にも、MobileSafariではfocus()メソッド自体がonClickイベントやタッチ系のイベントで呼び出されない限り動作しないという問題も有ります。

alice-asahinaさん、コメントありがとうございます。
onchange系イベントで何とかならないか試してみます。

ウォッチ

この質問への回答やコメントをメールでお知らせします。