Port php lib matomo-org/device-detector to NodeJs
!!! library works only under nodejs v10+
Install
local install production
npm install node-device-detector --save
local machine install is developer
npm install node-device-detector --only=dev
Before upgrading to up version, pls read;
(ChangeLog)
Show details
- v1.2.1
- Update fixtures from the motamo-org/devicedetect package#3.12.4 (update to 2020/04/06)
- v1.2.1
- Update fixtures from the motamo-org/devicedetect package#3.12.3 (update to 2020/03/14)
- v1.2.0
- Update fixtures from the motamo-org/devicedetect package#3.12.3 (update to 2020/02/04)
- v1.1.9
- Update fixtures(update to 2020/01/07)
- v1.1.8
- Update fixtures from the motamo-org/devicedetect package#3.12.0 (update to 2019/10/03)
- v1.1.7
- Update fixtures from the motamo-org/devicedetect package#3.12.0
- v1.1.6
- Update fixtures from the motamo-org/devicedetect package#3.11.8
- v1.1.5
- Update fixtures from the motamo-org/devicedetect package#3.11.7
- Remove methods: isBot(), isMobile(), isPhablet() is* etc...
- All parsing results are no longer stored in the class object, the result is given immediately, this will allow you to use asynchrony
Usage
-
const DeviceDetector = require('node-device-detector');
const userAgent = 'Mozilla/5.0 (Linux; Android 5.0; NX505J Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.78 Mobile Safari/537.36';
const detector = new DeviceDetector;
const result = detector.detect(userAgent);
console.log('result parse', result);
Result parse
{
os: {
name: 'Android',
short_name: 'AND',
version: '5.0',
platform: '',
family: 'Android'
},
client: {
type: 'browser',
name: 'Chrome Mobile',
short_name: 'CM',
version: '43.0.2357.78',
engine: 'Blink',
engine_version: ''
},
device: {
id: 'ZT',
type: 'smartphone',
brand: 'ZTE',
model: 'Nubia Z7 max'
}
}
Result is not detect
{
os: {},
client: {},
device: {
id: '',
type : 'device type',
brand: '',
model: ''
}
}
Using parsers singly
Detect Bot
const DeviceDetector = require('node-device-detector');
const userAgent = 'Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)';
const detector = new DeviceDetector;
const result = detector.parseBot(userAgent);
Detect Os
const DeviceDetector = require('node-device-detector');
const userAgent = 'Mozilla/5.0 (Linux; Android 5.0; NX505J Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.78 Mobile Safari/537.36';
const detector = new DeviceDetector;
const result = detector.parseOs(userAgent);
console.log('Result parse os', result);
Detect Client
const DeviceDetector = require('node-device-detector');
const userAgent = 'Mozilla/5.0 (Linux; Android 5.0; NX505J Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.78 Mobile Safari/537.36';
const detector = new DeviceDetector;
const result = detector.parseClient(userAgent);
console.log('Result parse client', result);
Lite parse not detect brand
const DeviceDetector = require('node-device-detector');
const userAgent = 'Mozilla/5.0 (Linux; Android 5.0; NX505J Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.78 Mobile Safari/537.36';
const detector = new DeviceDetector;
const resultOs = detector.parseOs(userAgent);
const resultClient = detector.parseClient(userAgent);
const resultDeviceType = detector.parseDeviceType(userAgent, resultOs, resultClient, {});
const result = Object.assign({os:resultOs}, {client:resultClient}, {device: resultDeviceType});
console.log('Result parse lite', result);
Others
Support detect brands list (551):
- 3Q, 4Good, Acer, Advan, Advance, AGM, Ainol, Airness, AIS, Aiwa, Akai, Alba, Alcatel, AllCall, AllDocube, Allview, Allwinner, altron, Amazon, AMGOO, Amoi, ANS, Apple, Archos, Arian Space, Ark, Arnova, ARRIS, Ask, Assistant, Asus, Atom, Audiovox, AVH, Avvio, Axx
ion, Azumi Mobile, Barnes & Noble, BDF, Becker, Beeline, Beetel, BenQ, BenQ-Siemens, Bezkam, BGH, Bird, Bitel, Black Fox, Blackview, Blaupunkt, Blu, Bluboo, Bluegood, Bmobile, bogo, Boway, bq, Bravis, Brondi, Bush, CAGI, Capitel, Captiva, Carrefour, Casio, Casp
er, Cat, Celkon, Changhong, Cherry Mobile, China Mobile, Chuwi, Clarmin, CnM, Coby Kyros, Comio, Compal, ComTrade Tesla, Concord, ConCorde, Condor, Coolpad, Crescent, Cricket, Crius Mea, Crosscall, Cube, CUBOT, CVTE, Cyrus, Danew, Datang, Datsun, Dbtel, Dell, D
enver, Desay, DeWalt, DEXP, Dialog, Dicam, Digi, Digicel, Digiland, Digma, DNS, DoCoMo, Doogee, Doov, Dopod, Doro, Dune HD, E-Boda, E-tel, Easypix, EBEST, Echo Mobiles, ECS, EE, EKO, Eks Mobility, Elenberg, Elephone, Energizer, Energy Sistem, Ergo, Ericsson, Er
icy, Essential, Essentielb, Eton, eTouch, Etuline, Eurostar, Evercoss, Evertek, Evolio, Evolveo, EvroMedia, Explay, Extrem, Ezio, Ezze, Fairphone, Famoco, Fengxiang, FiGO, FinePower, Fly, FNB, Fondi, FORME, Forstar, Foxconn, Freetel, Fujitsu, G-TiDE, Garmin-Asu
s, Gemini, General Mobile, Geotel, Ghia, Ghong, Gigabyte, Gigaset, Ginzzu, Gionee, Globex, GOCLEVER, Goly, GoMobile, Google, Gradiente, Grape, Grundig, Hafury, Haier, HannSpree, Hasee, Hi-Level, Highscreen, Hisense, Hoffmann, Homtom, Hoozo, Hosin, HP, HTC, Huaw
ei, Hyundai, i-Joy, i-mate, i-mobile, iBall, iBerry, IconBIT, iHunt, iKoMo, iLA, IMO Mobile, Impression, iNew, Infinix, InFocus, Inkti, InnJoo, Innostream, Inoi, INQ, Insignia, Intex, iOcean, iPro, Irbis, iRola, iRulu, iTel, iView, iZotron, JAY-Tech, Jiayu, Jol
la, Just5, K-Touch, Kaan, Kalley, Karbonn, KATV1, Kazam, KDDI, Kempler & Strauss, Keneksi, Kiano, Kingsun, Kocaso, Kodak, Kogan, Komu, Konka, Konrow, Koobee, KOPO, Koridy, KRONO, Krüger&Matz, KT-Tech, Kumai, Kyocera, LAIQ, Land Rover, Landvo, Lanix, Lark, Lava,
LCT, Le Pan, Leagoo, Ledstar, LeEco, Lemhoov, Lenco, Lenovo, Leotec, Lephone, Lexand, Lexibook, LG, Lingwin, Logicom, Lumus, LYF, M.T.T., M4tel, Majestic, Mann, Manta Multimedia, Masstel, Maxwest, Maze, Mecer, Mecool, Mediacom, Medion, MEEG, MegaFon, Meitu, Me
izu, Memup, MEU, MicroMax, Microsoft, Mio, Miray, Mitsubishi, MIXC, MLLED, Mobicel, Mobiistar, Mobiola, Mobistel, Modecom, Mofut, Motorola, Movic, Mpman, MSI, MTC, MTN, MYFON, MyPhone, Myria, Mystery, MyWigo, Navon, NEC, Neffos, Netgear, NeuImage, Newgen, NEXBO
X, Nexian, Nextbit, NextBook, NG Optics, NGM, NOA, Noain, Nobby, Noblex, Nokia, Nomi, Nous, NUU Mobile, Nuvo, Nvidia, NYX Mobile, O+, O2, Obi, Odys, Onda, OnePlus, OPPO, Opsson, Orange, Ouki, Overmax, öwn, Oysters, Palm, Panacom, Panasonic, Pantech, PCBOX, PCD,
PCD Argentina, Pentagram, Philips, phoneOne, Pioneer, Pixus, Ployer, Plum, Point of View, Polaroid, PolyPad, Polytron, Pomp, Positivo, PPTV, Prestigio, Primepad, Proline, ProScan, PULID, Q-Touch, Qilive, QMobile, Qtek, Quantum, Quechua, Qumo, R-TV, Ramos, RCA
Tablets, Readboy, Rikomagic, RIM, Rinno, Ritmix, Ritzviva, Riviera, Roadrover, Rokit, Roku, Rombica, Ross&Moor, Rover, RoverPad, RT Project, Runbo, Safaricom, Sagem, Samsung, Sanei, Santin BiTBiZ, Sanyo, Savio, Selfix, Sencor, Sendo, Senseit, Senwa, SFR, Sharp,
Shuttle, Siemens, Sigma, Silent Circle, Simbans, Sky, Skyworth, Smartfren, Smartisan, Softbank, Sonim, Sony, Spice, Star, Starway, STF Mobile, STK, Stonex, Storex, Sumvision, SunVan, Sunvell, SuperSonic, Supra, SWISSMOBILITY, Symphony, Syrox, T-Mobile, TB Touc
h, TCL, TechPad, Teclast, Tecno Mobile, Telefunken, Telego, Telenor, Telit, Tesco, teXet, ThL, Thomson, TIANYU, Timovi, TiPhone, Tolino, Tooky, Top House, Toplux, Toshiba, Touchmate, TrekStor, Trevi, True, Tunisie Telecom, Turbo, Turbo-X, TVC, U.S. Cellular, Ug
oos, Uhappy, Ulefone, Umax, UMIDIGI, Unihertz, Unimax, Uniscope, Unknown, Unnecto, Unonu, Unowhy, UTOK, UTStarcom, Vastking, Venso, Verizon, Vernee, Vertex, Vertu, Verykool, Vestel, VGO TEL, Videocon, ViewSonic, Vinga, Vinsoc, Vitelcom, Vivax, Vivo, Vizio, VK M
obile, Vodafone, Vonino, Vorago, Voto, Voxtel, Vulcan, Walton, Weimei, WellcoM, Wexler, Wieppo, Wiko, Wileyfox, Wink, Wolder, Wolfgang, Wonu, Woo, Woxter, X-TIGI, X-View, Xiaolajiao, Xiaomi, Xion, Xolo, Xoro, Yandex, Yarvik, Yes, Yezz, Yota, Ytone, Yu, Yuandao,
Yusun, Yxtel, Zeemi, Zen, Zenek, Zonda, Zopo, ZTE, Zuum, Zync, ZYQ