-
Notifications
You must be signed in to change notification settings - Fork 1
Spec
Entity of Spec module is located in the global.WebModule.Spec.
If you want publish to global namespace.
Spec モジュールの実体は、global.WebModule.Spec にあります。
global 名前空間に直接公開する事もできます。その場合は global.Spec でもアクセス可能になります。
- new Spec - インスタンスを生成します
- Spec.has - SpecCatalog や SpecCatalogFP に一致するIDがあるか検索します
- Spec.dump - 条件に一致するデバイスの一覧をダンプします
new Spec(ua:UserAgent) は、デバイス情報の収集と分析を行い、Spec のインスタンスを返します。
返されるインスタンスを通じてデバイスの情報を取得できます。
Spec properties | result | |
---|---|---|
spec.UNKNOWN
|
false | 不明なデバイスIDならtrue |
Smart Phone 専用プロパティ | ||
spec.SOC
|
"A6" | SoC ID |
spec.GPU
|
"SGX543MP3" | GPU ID |
spec.RAM
|
1024 | デバイスのRAM(MB) |
spec.BLE
|
true | BLEが使用可能ならtrue |
spec.NFC
|
true | NFCが使用可能ならtrue |
spec.ATOM
|
false | ATOMならtrue |
spec.SIMD
|
true | SIMD(NEON)が使用可能ならtrue |
spec.H265_ENCODER
|
false | H265ハードウェアエンコーダが利用可能なら true |
spec.H265_DECODER
|
false | H265ハードウェアデコーダが利用可能なら true |
spec.FORCE_TOUCH
|
false | ForceTouchをサポートしているか |
spec.FORCE_CLICK
|
false | ForceClickをサポートしているか |
spec.MAX_THREADS
|
2 | 最大スレッド数 |
spec.MAX_TOUCH_POINTS
|
5 | 最大タッチポイント数 |
spec.GLES
|
3.1 | OpenGL ES version |
spec.METAL
|
0.0 | Metal version |
spec.VULKAN
|
0.0 | Vulkan version |
spec.LOW_END
|
false | 低スペックデバイスなら true |
spec.OUTMODED
|
false | 古いデバイスなら true |
Feature Phone 専用プロパティ | ||
spec.FP_TLS
|
false | TLS が利用可能なら true |
spec.FP_UTF8
|
false | UTF8 が利用可能なら true |
spec.FP_COOKIE
|
false | COOKIE が利用可能なら true |
spec.FP_CERT_SHA1
|
false | SHA-1 サーバ証明書しかサポートしていない端末で true |
spec.FP_MALFUNCTION
|
false | 普段使いできないほどの機能不全があれば true |
spec.FP_FLASH_LITE
|
0.0 | 利用可能な FlashLite Version |
spec.FP_DISPLAY_LONG
|
0 | ディスプレイの長辺pixel |
spec.FP_DISPLAY_SHORT
|
0 | ディスプレイの短辺pixel |
var ua = new UserAgent();
var spec = new Spec(ua);
ua.DEVICE // -> "Nexus 5"
spec.LOW_END // -> false
spec.OUTMODED // -> false
カタログに記載されていない未知のデバイスで true になります。 このプロパティは、Smart Phone と Feature Phone で機能します。
System-on-a-chip 名です。
このプロパティは、Smart Phone 専用です。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.SOC // -> "MSM8255"
GPU 名です。
このプロパティは、Smart Phone 専用です。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.GPU // -> "ADRENO 320"
デバイスに搭載されているメモリです。単位はMBです。
このプロパティは、Smart Phone 専用です。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.RAM // -> 2048
デバイスに Bluetooth Low Energy が搭載されている場合に true になります。
このプロパティは、Smart Phone 専用です。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.BLE // -> true
デバイスに NFC が搭載されている場合に true になります。
このプロパティは、Smart Phone 専用です。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.NFC // -> true
SoC が Intel ATOM プロセッサーなら true になります。
このプロパティは、Smart Phone 専用です。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.ATOM // -> true
デバイスで SIMD (NEON) が利用可能な場合に true になります。
このプロパティは、Smart Phone 専用です。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.SIMD // -> true
デバイスで H.265 ハードウェアエンコーダが利用可能なら true になります。
このプロパティは、Smart Phone 専用です。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.H265_ENCODER // -> true
デバイスで H.265 ハードウェアデコーダが利用可能なら true になります。
このプロパティは、Smart Phone 専用です。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.H265_DECODER // -> true
iPhone 6s で実装された、force touch 機能のあり/なしです。
このプロパティは、Smart Phone 専用です。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.FORCE_TOUCH // -> false
iPhone 6s で実装された、force click 機能のあり/なしです。
このプロパティは、Smart Phone 専用です。
force click 機能は、リンクを強く押すとリンク先をプレビューする機能の事です。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.FORCE_CLICK // -> false
デバイスの最大スレッド数です。
このプロパティは、Smart Phone 専用です。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.MAX_THREADS // -> 2
デバイスの最大同時タッチ数です。1 ならマルチタッチ機能は利用できません。0 ならタッチスクリーンを搭載していません。
このプロパティは、Smart Phone 専用です。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.MAX_TOUCH_POINTS // -> 5
デバイスがサポートしている OpenGL ES の version です。 0.0 または 1.1 〜 3.1 の値が返ります。
このプロパティは Smart Phone 専用です。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.GLES // -> 3.1
デバイスが Metal をサポートしていると 1.0 以上の値を返します。サポートしていない場合は 0.0 を返します
このプロパティは Smart Phone 専用です。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.METAL // -> 1.0
デバイスがサポートしている Vulkan の version です。0.0 または 1.0 以上の値が返ります。
このプロパティは Smart Phone 専用です。
Android では以下の条件が成立した場合に 1.0 以上の値を返します。
- Android 7.0 以上
- OpenGL ES 3.1 が利用可能な GPU を搭載している
- GPU ドライバが Vulkan をサポートしている
- Adreno 4xx/5xx 以上
- Tegra K1/X1 以上
- PowerVR G6430/GX6450/GXA6850/GT7600/GT7800 以上
- Mali の一部
var ua = new UserAgent();
var spec = new Spec(ua);
spec.VULKAN // -> 1.0
遅い CPU や 遅い GPU を搭載したデバイスで true になります。
このプロパティは、Smart Phone 専用です。
このプロパティは、 Spec.THRESHOLD.LOW_END_CPU_CORES, Spec.THRESHOLD.LOW_END_CPU_SPEED, Spec.THRESHOLD.LOW_END_GPU_GFLOPS の値に依存します。
SupportPolicy を参照してください。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.LOW_END // -> false
発売から一定期間(24ヶ月または30ヶ月)が経過したデバイスで true になります。
このプロパティは、Smart Phone 専用です。
このプロパティは、Spec.THRESHOLD.OUTMODED の値に依存します。
デフォルトでは発売から24ヶ月経過したデバイスで true になり、 OS バージョンアップが行われたデバイスは30ヶ月後に true になります。
SupportPolicy を参照してください。
var ua = new UserAgent();
var spec = new Spec(ua);
spec.OUTMODED // -> false
TLS が利用可能なら true になります。
このプロパティは Feature Phone 専用です。
var ua = new UserAgent("DoCoMo/2.0 P07A3(c500;TB;W24H15)");
var spec = new Spec(ua);
spec.FP_TLS // -> true
UTF8 が利用可能なら true になります。
このプロパティは Feature Phone 専用です。
var ua = new UserAgent("DoCoMo/2.0 P07A3(c500;TB;W24H15)");
var spec = new Spec(ua);
spec.FP_UTF8 // -> true
COOKIE が利用可能なら true になります。
このプロパティは Feature Phone 専用です。
var ua = new UserAgent("DoCoMo/2.0 P07A3(c500;TB;W24H15)");
var spec = new Spec(ua);
spec.FP_COOKIE // -> true
SHA-1 サーバ証明書しかサポートしておらず、SHA-2 サーバ証明書が利用不能な端末で true になります。この値が true の端末は2016年以降 HTTPS が利用できません。
このプロパティは Feature Phone 専用です。
var ua = new UserAgent("DoCoMo/2.0 P07A3(c500;TB;W24H15)");
var spec = new Spec(ua);
spec.FP_CERT_SHA1 // -> true
普段使いできないほど機能不全を起こしている端末で true になります。
このプロパティは Feature Phone 専用です。
- カレンダー機能に不具合が発生している端末で true になります
- HTTPS が利用できない端末で true になります(FP_CERT_SHA1 = true)
var ua = new UserAgent("DoCoMo/2.0 P07A3(c500;TB;W24H15)");
var spec = new Spec(ua);
spec.FP_MALFUNCTION // -> true
利用可能な FlashLite の Version 番号です。 1.0 / 1.1 / 2.0 / 3.0 / 3.1 または 0 になります。
このプロパティは Feature Phone 専用です。
var ua = new UserAgent("DoCoMo/2.0 P07A3(c500;TB;W24H15)");
var spec = new Spec(ua);
spec.FP_FLASH_LITE // -> 3.1
ディスプレイの長辺と短辺です。単位は pixel です。
このプロパティは Feature Phone 専用です。
var ua = new UserAgent("DoCoMo/2.0 P07A3(c500;TB;W24H15)");
var spec = new Spec(ua);
spec.FP_DISPLAY_LONG // -> 662
spec.FP_DISPLAY_SHORT // -> 480
Spec.has(id:IDString):Boolean は、id が SpecCatalog に存在する場合に true を返します。
Spec.has("Nexus 7") // -> true
Spec.has("ADRENO 420") // -> true
Spec.has("A8X") // -> true
Spec.dump(type:String = "modern"):DeviceIDArray は type に指定した条件に一致するデバイスIDの配列を返します。
type | filter |
---|---|
"modern" | 発売から2年以内の中〜高スペックのデバイス |
"lowend" | 低スペックのデバイスの一覧 |
"outmoded" | 発売から2年以上経過したデバイスの一覧 (OSバージョンアップがあったデバイスは2年ではなく2年半になります) |
"onehand" | 片手で操作可能なデバイスの一覧 |
"bothhands" | 両手で操作可能なデバイスの一覧 |
Spec.dump("modern")
iPhone 6 Plus,iPhone 6,iPhone 5s,iPhone 5c,iPad Air 2,iPad Air,iPad mini 3,iPad mini 2,iPod touch 6,XT1058,Nexus 9,Nexus 7 2nd,Nexus 6,Nexus 5,Mi Pad,Redmi Note,ASUS_T00P,ASUS_Z00AD,K017,ME581C,SHIELD Tablet,Nexus Player,SO-03G,SO-04G,SO-05G,SC-04G,SC-05G,SH-03G,SH-04G,SH-05G,F-04G,DM-01G,SO-01G,SO-02G,SC-01G,SC-02G,SC-03G,SH-01G,SH-02G,F-02G,F-03G,SC-04F,SO-03F,SO-04F,SO-05F,SH-04F,SH-05F,SH-06F,F-05F,F-06F,L-01F,SC-01F,SC-02F,SH-01F,SH-01FDQ,SH-02F,SH-03F,SO-01F,SO-02F,F-01F,F-02F,F-03F,F-04F,SC-04E,SO-04E,SO-04EM,SH-08E,F-08E,F-09E,SO-02E,SCV31,SOV31,SOT31,HTV31,LGV32,SHV32,KYV35,KYV34,KYT31,KYV33,SHV31,KYV32,KYL23,SHF32,SHF31,SCT21,LGV31,KYV31,SOL26,SCL24,AST21,SOT21,HTL23,KYY24,KYY23,SHL25,SCL23,SOL25,LGL24,SHT22,SHL24,URBANO L02,LGL23,SOL24,FJT21,SOL23,SCL22,KYL22,LGL22,SHL23,FJL22,HTL22,SOL22,402SO,404SH,403SH,404SC,404KC,402LG,403SC,402SH,403HW,401SH,401SO,302KC,305SH,304SH,WX05SH,SBM303SH,DM016SH,301F,SBM302SH,101F,WX04SH,EM01F,DM015K,DM014SH,LGL25,VA-10J,KFSAWA,KFSAWI,KFAPWA,KFAPWI,KFTHWA,KFTHWI