Spec.js - スマートフォン/タブレットのスペックを判定
Webサイトへモバイルやデスクトップ、タブレットなどが入り乱れてアクセスするようになると、それぞれに分けて情報配信を行いたいと思うようになります。さらにスマートフォンの中でも使える機能が異なったりして、そのための処理分けが複雑なものになっているかも知れません。 そこで使ってみたいのがSpec.jsです。より細かく端末の情報が絞り込めるライブラリになります。
Spec.jsの使い方
Spec.jsのデモです。ユーザエージェントを使って各種機能やスペックを知ることができます。例えばiPhone 6の場合は次のようになります。
var ua = new UserAgent(); // iPhone 6
var spec = new Spec(ua);
spec.UNKNOWN // -> false
spec.SOC // -> "A8"
spec.GPU // -> "POWERVR GX6450",
spec.RAM // -> 1024
spec.BLE // -> true
spec.NFC // -> false
spec.ATOM // -> false
spec.SIMD // -> true
spec.H265_ENCODER // -> false
spec.H265_DECODER // -> false
spec.FORCE_TOUCH // -> false
spec.FORCE_CLICK // -> false
spec.MAX_THREADS // -> 2
spec.MAX_TOUCH_POINTS // -> 5
spec.MAX_TEXTURE_SIZE // -> 16384
spec.LOW_END // -> false
spec.OUTMODED // -> false
動画のエンコーダー、デコーダーであったり、3D Touchが使えるかどうかなど、より細かく情報が分かります。これは機種ごとの情報を記載したJSONファイルを使っているので、ユーザエージェントを変えることで情報を変更できます。
サーバサイドでも使えますし、任意の文字列でユーザエージェントを作ればその判定に用いることができます。
var ua = new UserAgent("DoCoMo/2.0 P07A3(c500;TB;W24H15)");
var spec = new Spec(ua);
spec.FP_TLS // -> true
spec.FP_UTF8 // -> true
spec.FP_COOKIE // -> true
spec.FP_CERT_SHA1 // -> true
spec.FP_MALFUNCTION // -> true
spec.FP_FLASH_LITE // -> 3.1
spec.FP_DISPLAY_LONG // -> 662
spec.FP_DISPLAY_SHORT // -> 480
現状で500以上の機種に関する情報が蓄積されており、iPhone 6 plusなどの最新機種にも対応しています。大部分の機種についてはSpec.jsを使って処理判定を楽に行えるのではないでしょうか。
Spec.jsはnode/JavaScript製のオープンソース・ソフトウェア(MIT License)です。