FelicaのIDmを取得する方法の模索
前提条件
Windows上でFelicaのIDmを読み取ることを目標とした。可能な限り、FileMaker外からの操作は不要にする。主にWebビューアを使用してFelicaリーダーと連携することを考える。
候補として挙げたもの
- ネイティブアプリを起動させておく
- WebUSBを使用
- ActveX
- Web NFC
- JScript.NET + .NET Framework
- 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外の操作が必要であり、開発コストも高いため可能な限り避けたいものとなる。
投稿者プロフィール
-
スモールの未来探究部 所属
FileMaker開発エンジニア
最新の投稿
- FileMaker研究室2024年2月8日FileMaker WebDirectでアクセス時に発生する502エラーの解決方法
- FileMaker研究室2023年12月19日Webビューアで特定の座標のGoogleMapを表示
- FileMaker研究室2023年8月19日FelicaのIDmを取得する方法の模索
- FileMaker研究室2022年11月25日AWSでの環境構築録