NFC
FeliCa
WebUSB
NIJIBOXDay 6

Web USBでPaSoRiを扱えるOSをまとめてみた

3行で

  • WebUSB 楽しい
  • でも、PaSoRiはmacOSかAndroidでしかうまく動かない
  • WebUSB+NFC 楽しい

本題

先月投稿されたこの記事を見て、社内のNFC勢としては、scriptタグですぐ使えるライブラリを作ってみたり 1、会社の社員証も読み込めないか試行錯誤してみたり2、してました。

で、いろいろと社内レベルでも実運用を考えてみた場合、気になるのがOSについて。
ブラウザはとりあえずGoogle Chromeとしても、「じゃあどのOSでなら動くのか?」が重要になるかと思います。
「Windows PCなら安かったり余りがあるから常時稼働させても大丈夫」「ラズパイなら場所も取らないしもっと楽じゃね?」とかあるじゃないですか。

というわけで、手元で試せる環境で色々と見て回ってきました。

前提条件

  • 前述の記事のデモサイトでIDmを表示させるところまでを確認する
  • 使用するカードリーダーデバイスは、Sony製PaSoRi RC-S380
  • 使用するブラウザはGoogle Chrome系(自分が低コストで調べられる範囲で)
    • Google Chrome
    • Google Chrome Canary
    • Chromium Web Browser
  • 今回突っ込んだ確認はしません

結果

macOS

OS ブラウザ バージョン その他条件 どこまで動くか
Yosemite(10.10.5) Google Chrome 62.0.3202.62 (なし) IDm表示までクリア
El Capitan(10.11.6) Google Chrome 62.0.3202.94 (なし) IDm表示までクリア
Sierra(10.12.5) Google Chrome 61.0.3163.100 (なし) IDm表示までクリア
Sierra(10.12.6) Google Chrome 62.0.3202.94 (なし) IDm表示までクリア
Sierra(10.12.6) Google Chrome Canary 64.0.3273.0 (なし) IDm表示までクリア

当然のごとく普通に動作しました。
バージョン61からWebUSB APIが有効になったっぽいので、基本的にOSは選ばないと思って問題ないのでしょう。

Windows

OS ブラウザ バージョン その他条件 どこまで動くか
Windows 7 Ultimate SP1 Google Chrome 62.0.3202.9 (なし) デバイスが見つからない
Windows 7 Ultimate SP1 Google Chrome 62.0.3202.9 管理者モードで起動 デバイスが見つからない
Windows 7 Ultimate SP1 Google Chrome 62.0.3202.9 Enable new WebUSB backend デバイスが見つかるが、Access Denied
Windows 7 Ultimate SP1 Google Chrome 62.0.3202.9 Enable new WebUSB backend+管理者モード デバイスが見つかるが、Access Denied
Windows 10 Pro Google Chrome 62.0.3202.62 (なし) デバイスが見つからない
Windows 10 Pro Google Chrome 62.0.3202.62 管理者モードで起動 デバイスが見つからない
Windows 10 Pro Google Chrome 62.0.3202.62 Enable new WebUSB backend デバイスが見つかるが、Access Denied
Windows 10 Pro Google Chrome 62.0.3202.62 Enable new WebUSB backend+管理者モード デバイスが見つかるが、Access Denied

見事なまでの全滅っぷり。ここまで来ると自分が最低限必要な準備を怠ったのかなと思うレベル。
挙動を整理すると、こんな感じでした。
* デフォルトでは見つけられない
* flagsでEnable new WebUSB backendを有効にすると、リストに出るようになる。
* が、アクセスしようとすると失敗する
* 管理者権限でも変わらない
デバイスへのアクセスをするときに何か特別な条件が必要なんでしょうか?

Linux系

OS ブラウザ バージョン その他条件 どこまで動くか
Ubuntu 16.04 Chromium Web Browser 62.0.3202.62 Parallels上のVM デバイスが見つかるが、Access Denied
CentOS 7.2 Google Chrome 62.0.3202.94 VirtualBox上のVM デバイスが見つかるが、Access Denied

あまり良い結果が出ませんでした。

適当にインストールした感じでは、「リストには最初から出るが、接続しようとすると失敗する」という理由を追うのにちょっと躊躇する結果に。要はWindowsでEnable new WebUSB backendした時と同じでした。
ちなみに手元にRaspberry Piがあったのですが、インストール済みのRaspbianではすぐインストールできるChromiumはバージョン56ぐらいまでらしく、調査を断念しました。

Android系

OS ブラウザ バージョン その他条件 どこまで動くか
Fire OS 5.6.1.0 Amazon Slik (未確認) PASMOのIDmの表示までOK
Fire OS 5.6.1.0 Google Chrome 65.0.3325.109 PASMOのIDmの表示までOK

Android+Chrome系ならうまくいく模様

感想

そりゃ最近できたばっかりだし、Google主導だし対応できないほうが多いですよね。
試せてない環境だとChromebookとかは動いてくれないかなと期待してるのですが、手元にないので今回はパス。

もうちょっとバージョンが上がったりしたらまた試そうかなと思います。


  1. 今のところ非公開です 

  2. 結果については秘密で