🙆‍♀️

ブラウザで取得できる意外な情報

2021/09/19に公開

背景

ブラウザでカメラを利用する時にNavigatorというオブジェクトでいろいろな情報が取得できそうだったので調べてみました。

取得できる情報

メモリ容量

現在、利用しているコンピュータのメモリ容量、ギガバイト単位で取得できる。
https://developer.mozilla.org/ja/docs/Web/API/Navigator/deviceMemory
公式ドキュメントだと、0.25, 0.5, 1, 2, 4, 8の精度でしか取得できないらしい。
ちなみに私のMacbookは16GBありますが、8という結果が帰ってきます。
荒い…

navigator.deviceMemory

タッチコネクト点の数

現在、利用しているデバイスの利用できるタッチコネクト数。
https://developer.mozilla.org/ja/docs/Web/API/Navigator/maxTouchPoints
要するにタブレットなどのマルチタッチの最大数。
私のMacbookだと、ディスプレイのタッチ機能がないためか0です。
トラックパッドは含まれないっぽい。

navigator.maxTouchPoints

オンライン状態

現在、デバイスがオンライン状態かどうかを返す
https://developer.mozilla.org/ja/docs/Web/API/Navigator/onLine
パソコンのネットワークを切るとfalseを返し、復旧させるとtrueを返す。
色々と使えそう

navigator.onLine

バッテリー状態

非推奨になってしまった様子だが、取りあえず使える
現在のバッテリーの状態を返す。
https://developer.mozilla.org/ja/docs/Web/API/Navigator/getBattery
今後は、こっち(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で知ってそうな言語の一覧が取得できる。

https://developer.mozilla.org/ja/docs/Web/API/Navigator/language

https://developer.mozilla.org/ja/docs/Web/API/Navigator/languages

ネットワーク情報

現在接続しているネットワーク情報が取得できる。
https://developer.mozilla.org/ja/docs/Web/API/Navigator/connection

私は、Wi-Fiに接続しているはずだが、なぜか4Gと表示される。
https://stackoverflow.com/questions/58988028/type-missing-in-navigator-connection-how-to-get-cellular-wifi-ethernet-in-javas
みんな、悩んでいる様子ですね。

https://developer.mozilla.org/en-US/docs/Web/API/NetworkInformation/effectiveType

実験的な機能で、「slow-2g」、「2g」、「3g」、「4g」しか返さない設計のようです。
通信速度を示す意味でしか利用されていない感じですね。

navigator.connection
downlink: 10 #有効帯域幅の見積もり MB/秒
effectiveType: "4g" #接続の有効なタイプ
onchange: null #接続が変更された場合のイベント
rtt: 50 #推定有効ラウンドトリップ時間
saveData: false# 通信容量削減オプション関係
type:xxx #接続のタイプ Wi-Fi,bluetoothなど…(Chromeでは未実装)

インストールされているプラグイン

非推奨になっていますが、まだ動くようです。
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/plugins

Chromeにインストールされているプラグインの一覧を取得できます。

navigator.plugins

最後に

個人的に他に気になったのはバイブレーションを有効にできる機能位置情報を取得できる機能でした。
この辺は別途試して、できれば別記事にまとめてみたいと思います。

参考になった方、面白かった方はイイネいただけると嬉しいです!

Discussion