Cordovaプラグインでアクセスポイントの情報を取れるようにした
Apache Cordovaが公式的にメンテしているCordovaプラグイン Network Information (Connection) を拡張して、Wi-Fi接続時のアクセスポイントの情報を取得できるようにした。ただしAndroidに限る。
https://github.com/keik/cordova-plugin-network-information/tree/add-wifi-info-on-android
もともとこのプラグインは、現在のネットワーク接続の種別(Wi-Fiとか、LTEとか)だけが取得できる。
console.log(navigator.connection.type); // -> "wifi"
機能拡張によって、アクセスポイント情報を次のようにして取得できるようにした。
console.log(navigator.connection.wifi); // -> { ssid: '<your-ssid>', ipaddress: '<your-ipaddress>', macaddress: '<your-macaddress>', networkid: '<your-networkid>' }
なお、このプラグインのAPI設計は、W3Cで策定予定だった The Network Information API に基づいているが、現在この仕様の策定状況は Retired になっている。なのであんまり細かいことを気にせず、適当に wifi
とかいうプロパティにWi-Fiアクセスポイント情報を突っ込んだ。
(所感) Cordova本当に流行(って)るんすか?
Cordovaはプラットフォームの差分を "プラグイン" という形式で部分的に吸収するためのフレームワークにすぎないので、プラグインが豊富であればあるほどマルチプラットフォーム対応が容易になる。
じゃあそのプラグインはどれだけあるのか、と PLUGINS REGISTRY を見ると、まず登録されているプラグイン数は現在のところ281個とまずまず多い。しかし、これらのうち結構な割合で、メンテされてなさそう、または特定プラットフォームのみサポートするプラグインだったりして、様々な要求にどれだけ答えられるのかは微妙なところ。
こうした状況は、少なくとも個人でマルチプラットフォーム対応のプラグインを開発するハードルの高さが原因にあるんじゃないかと思う。プラットフォームごとの開発環境を準備するのも、開発スキルを習熟するのも、どちらも結構負担が大きい。プラグイン開発の面白みも、アプリを作るわけじゃないので、あまりない。
それと、Cordovaで救済されたい人ってのは、個人開発者よりも、顧客からマルチプラットフォーム対応を求められるエンタープライズの人たちなんじゃないかな。そういう背景もあって、Monacaのようなサービスは独自に開発したプラグインをOSSとせず、サービスの価値を高めるための商売道具にしているんじゃないかな。
エスアイアーの心を掴んで離さない、コルドバ。