NPM version Build Status Coverage Status
Client information detector by user agent, detect information include:
- Device.
- Operation System (OS).
- Browser.
- Rendering Engine.
Detected information is a "detector object", data structure like:
detector = { device: { name: "iphone", version: -1, fullVersion: "-1", [iphone]: -1 }, os: { name: "ios", version: 6.1, fullVersion: "6.1", [ios]: 6.1 }, browser: { name: "chrome": version: 26.0, fullVersion: "26.0.1410.50", mode: 26.0, fullMode: "26.0.1410.50", compatible: false, [chrome]: 26.0 }, engine: { name: "webkit", version: 536.26, fullVersion: "536.26", mode: 523.26, fullMode: "523.26", compatible: false, [webkit]: 536.26 } }
Note: Above [iphone], [ios], [chrome], [webkit] is dynamically from
actual environment, different device, operation system, browser and rendering
engine is different.
Note:
- This version of detector's code is follow CommonJS sepcification, and support NodeJS and Web Browser environment at the same time.
- Some times, you just need simple detect a litter information, please reference
to #18, without
detector.
via npm:
Installation to global (with -g argument), you can use detector command in
terminal.
npm install detector [-g]
Some examples in common use:
// import detector, variable detector is "detector object". const detector = require('detector'); // Detect browser name. detector.browser.name === "chrome" // true // An other example for detect browser name. !!detector.browser.ie // false // Detect the old browseres. if(detector.browser.ie && detector.browser.version < 8){ alert("You browser is too old."); } // Detect rendering engine below Trident 4 (IE8). if(detector.engine.trident && detector.engine.mode < 4){ // hack code. } // Collect client detail informations. detector.browser.name + "/" + detector.browser.fullVersion;
const detector = require('detector'); // variable `d` is a "detector object" const d = detector.parse(userAgent); d.browser.name === "chrome";
Name of hardware device.
Version of hardware device.
Full version of hardware device.
Detect name of hardware device.
Support hardware devices:
pc: Windows PC.mac: Macintosh PC.iphone: iPhone.ipad: iPad.ipod: iPod.android: Android.blackberry: Blackberry mobile.wp: Windows Phone.mi: Xiaomi.meizu: meizu.nexus: Nexus.nokia: Nokia.samsung: samsung.aliyun: Aliyun.huawei: Huawei (华为)lenovo: lenovo.zte: ZTE Corporation (中兴)vivo: vivo (步步高)htc: HTC.oppo: OPPO.konka: konka (康佳)sonyericsson: sonyericsson (索尼爱立信)coolpad: coolpad (酷派)lg: LG.
Following hardware device support in NodeJS version of detector:
noain: 诺亚信huawei-honor: 华为荣耀lephone: 乐 Phoneasus: 华硕alcatel一加蓝米E 派hikeqmi(削除)友信达: 友信达 (削除ここまで)优米嘉源intki星语欧奇海派广信: 广信(削除)nibiru: nibiru (削除ここまで)神州青橙海信金立etonbohp小杨树语信nubia爱讯达寰宇通mofutinfocus大唐邦华天迈大显博瑞lingwiniusai波导德赛蓝魔美图opssonbenweehosinsmartisan: 锤子, Smartisan.ephone佰事讯newmankonkahaiermototcl天语doov天时达
Name of operation system.
Version of operation system.
Full version of operation system.
Detect name of operation system.
Support operation system list:
windows: Windows.macosx: Macintosh.ios: iOS.android: Android.chromeos: Chrome OS.linux: Linux.wp: Windows Phone.windowsce: Windows CE, include Windows Mobile, Smartphone, PPC.symbian: Symbian OS.blackberry: Blackberry OS.yunos: Aliyun OS.
Following operation system support in NodeJS version of detector:
meego: Meego.smartisan: Smartisan.
Name of browser.
Real version of browser.
In compatibility-mode, Internet Explorer declare it is a old browser.
but detector.browser.version return the real version of browser.
For example:
IE9 declare it is a IE7 in compatibility-mode, but detector.browser.version
return 9.0.
Full (real) version of browser.
Browser-mode. In Internet Explorer's compatibility-mode, version and mode is different.
Full mode of browser.
Detect name of browser.
Support browser list:
edge: Microsoft Edge browser.ie: Microsoft Internet Explorer.chrome: Google Chrome.firefox: Mozilla Firefox.safari: Apple Safari.opera: Opera.360: Qihu 360 browser.maxthon: Maxthon.sogou: Sogou.theworld: TheWorld.green: GreenBrowser.qq: QQ Browser.tt: TencentTraveler.liebao: Cheetah Mobile Inc. (猎豹) Browser.tao: Taobao (淘宝) Browser.coolnovo: coolnovo (枫树)saayaa: Saayaa (闪游)uc: UC Browser.mi: Build-in browser in Xiaomi (小米).baidu: Baidu (百度) browser.nokia: Build-in Browser in Nokia (诺基亚)blackberry: 黑莓默认浏览器,版本号与系统版本相同。webview: iOS WebView.yandex: Yandex YaBrowser.micromessengerWeChat (微信)ali-ap: 支付宝手机钱包。ali-ap-pd: 支付宝平板客户端。ali-am: 支付宝商户客户端。ali-tb: 淘宝手机客户端。ali-tb-pd: 淘宝平板客户端。ali-tm: 天猫手机客户端。ali-tm-pd: 天猫平板客户端。
googlebot: Googlebotbaiduspider: Baiduspider ,百度无线、网页搜索baiduspider-image: 百度图片搜索baiduspider-video: 百度视频搜索baiduspider-news: 百度新闻搜索baiduspider-favo: 百度收藏搜索baiduspider-cpro: 百度联盟baiduspider-ads: 百度商务搜索baiduboxapp: 百度手机搜索客户端bingbot: Bingbot 网络爬虫。msnbot: MSNBotnuhkbot: Nuhkbotalexabot: Alexabot.curl: curl.(削除)slurpbot: Yahoo! Slurp (削除ここまで)
Judge is browser in compatibility-mode.
Name of rendering engine.
Version of rendering engine.
Full version of rendering engine.
Mode of rendering engine.
Full-mode of rendering engine.
Detect name of rendering engine.
Support rendering engine list:
edgehtml: Microsoft Edge browser's rendering engine. (Note: version same browser version now.)trident: Microsoft Trident.blink: Google Blink.webkit: Apple Webkit.gecko: Mozilla Gecko.presto: Opera Presto.androidwebkit: Android Webkit.coolpadwebkit: Coolpad Webkit.u2: UC browser rendering enginev2.u3: UC browser rendering enginev3.
Parse user agent string, return a detector object.
Not Available information:
- Not Available name will be
na. - Not Available version will be
-1.