ブラウザで取得できる意外な情報
背景
ブラウザでカメラを利用する時にNavigator
というオブジェクトでいろいろな情報が取得できそうだったので調べてみました。
取得できる情報
メモリ容量
現在、利用しているコンピュータのメモリ容量、ギガバイト単位で取得できる。0.25
, 0.5
, 1
, 2
, 4
, 8
の精度でしか取得できないらしい。
ちなみに私のMacbookは16GBありますが、8
という結果が帰ってきます。
荒い…
navigator.deviceMemory
タッチコネクト点の数
現在、利用しているデバイスの利用できるタッチコネクト数。
私のMacbookだと、ディスプレイのタッチ機能がないためか0
です。
トラックパッドは含まれないっぽい。
navigator.maxTouchPoints
オンライン状態
現在、デバイスがオンライン状態かどうかを返す
色々と使えそう
navigator.onLine
バッテリー状態
非推奨
になってしまった様子だが、取りあえず使える
現在のバッテリーの状態を返す。
今後は、こっち(navigator.battery
)が有効になるようだが、私のChromeでは動かない。
navigator.getBattery().then(a=>console.log(a))
下記のような情報が取れる
charging: false #充電中?
chargingTime: Infinity #完全充電までの時間
dischargingTime: 2580 #完全放電までの時間
level: 0.34 #Battery容量(1がマックス)
利用言語
navigator.language
でメイン言語、navigator.languages
で知ってそうな言語の一覧が取得できる。
ネットワーク情報
現在接続しているネットワーク情報が取得できる。
私は、Wi-Fiに接続しているはずだが、なぜか4G
と表示される。
みんな、悩んでいる様子ですね。
実験的な機能で、「slow-2g」、「2g」、「3g」、「4g」しか返さない設計のようです。
通信速度を示す意味でしか利用されていない感じですね。
navigator.connection
downlink: 10 #有効帯域幅の見積もり MB/秒
effectiveType: "4g" #接続の有効なタイプ
onchange: null #接続が変更された場合のイベント
rtt: 50 #推定有効ラウンドトリップ時間
saveData: false# 通信容量削減オプション関係
type:xxx #接続のタイプ Wi-Fi,bluetoothなど…(Chromeでは未実装)
インストールされているプラグイン
非推奨になっていますが、まだ動くようです。
Chromeにインストールされているプラグインの一覧を取得できます。
navigator.plugins
最後に
個人的に他に気になったのはバイブレーションを有効にできる機能
や位置情報を取得できる機能
でした。
この辺は別途試して、できれば別記事にまとめてみたいと思います。
参考になった方、面白かった方はイイネいただけると嬉しいです!
Discussion