FelicaのIDmを取得する方法の模索

前提条件

 Windows上でFelicaのIDmを読み取ることを目標とした。可能な限り、FileMaker外からの操作は不要にする。主にWebビューアを使用してFelicaリーダーと連携することを考える。

候補として挙げたもの

  1. ネイティブアプリを起動させておく
  2. WebUSBを使用
  3. ActveX
  4. Web NFC
  5. JScript.NET + .NET Framework
  6. FileMakerプラグイン

1.ネイティブアプリと連携する方法

 C#などで作成したアプリをあらかじめ起動させておき、それと通信する。ネイティブアプリ側はlocalhostでサーバーを立て、Webビューア側は「Webソケット」を使用してアプリと通信する。

 この方法は、あらかじめFileMaker外の操作が必要になること、開発コストも高いことから、完全な検証はおこなっていない。

2.WebUSBを使用する方法

 EdgeやChromeでは、「WebUSB」というAPIが使える。WebUSBは、ブラウザからUSBと通信することができるJavaScriptのAPIである。ChromeやEdgeで使用することができる。FirefoxやSafari、EnternetExplorerでは使用できない。

 使用するには、「navigator.usb」からUSBオブジェクトを取得する。USBと通信するためにパケットを組み立てる必要があり、使用するUSBデバイスの仕様を完全に把握している必要がある。

 FileMaker Pro 19.3.1からは、WebビューアがEdgeになっているので使用できると考えた。しかし、FileMakerのWebビューア内からは使用できなかった。WebビューアがEdgeになっているFileMaker Pro 19.5.2でテストしたが動作しなかった。どうやらWebビューアでは「navigator.usb」が存在しないようで、呼び出すことができない。

 しかしEdgeやChrome上のWebDirectでは使用できた。WebDirectでは、Webビューアはあくまでサイト上のiframe要素として実行されるため、そこからnavigator.usbを呼び出せるとみられる。

3.ActiveX

  WebビューアからActiveXコントロールでFelicaリーダーと通信する。ActiveXはInternetExplorerでしか使用できない。最新のFileMakerのWebビューアはEdgeであるため、今後を考えて使用しないことにした。検証はしていない。

4.WebNFC

 WebNFCは、Chromeで実装され、JavaScriptでNFCの操作ができる。これは、Chromeなどでしか利用できず、Edgeでは使用できないため除外した。

5.JScript.NET + .NET Framework

 JScript.NETを使用する。JScript.NETはInternetExplorerからしか動かないため、これも除外した。

6.FileMakerプラグインを使う方法

 FelicaのIDmを取得するFileMakerプラグインを作成することができる。C++で開発することになる。また、株式会社イエスウィキャンが販売しているプラグインがある。

検討結果

 最終的に、可能とみられる方法は以下の通り

  • ネイティブアプリと連携
  • WebDirect上でWebUSBを使用する
  • FileMakerプラグインを作成する
  • イエスウィキャン製のFileMakerプラグインを使用する

既製品のプラグインを使用するのが最も簡単だが、ライセンス料がかかる。WebUSBを使用する方法は、有志がコードを公開しているため、それが使用できる限りは比較的簡単に作成できる。プラグインを自製する方法は、かなり開発コストがかかるといえる。ネイティブアプリと連携する方法は、FileMaker外の操作が必要であり、開発コストも高いため可能な限り避けたいものとなる。