2013-05-03 17 views
6

Sto lavorando su web analytics. Sto usando JavaScript lato client e NodeJS lato server. So che possiamo trovare device type utilizzando userAgent, ma come faccio a rilevare la marca del dispositivo (lato client o server)?Rilevazione marca dispositivo

+0

Un modo per scoprirlo è quello di utilizzare un dispositivo reale e visitare uno di quei siti "Il mio agente utente", e scoprire. Per quanto ne so, uno di questi siti ha il mio modello di dispositivo giusto. Dovrebbe rispondere alla tua domanda * "è possibile" *. – Joseph

risposta

1

Non è possibile farlo direttamente; il campo userAgent semplicemente non contiene il venditore. Tuttavia è possibile creare una libreria di token userAgent che si associano a determinati fornitori. Ciò comporterà un sacco di ricerche e test su una vasta gamma di dispositivi, però.

Ad esempio, qualsiasi cosa con "iOS", "iPhone" o "iPad" in userAgent è possibile mappare in modo sicuro a "Apple". Quindi il Samsung Galaxy S3, ad esempio, ha il numero del modello in userAgent, che è "GT-I9300". È quindi possibile mappare questo a "Samsung". ... e poi dovresti ripetere questo per ogni altro dispositivo che vuoi riconoscere. Cercare le stringhe di user-agent online è probabilmente il modo più rapido.

0

il rilevamento tramite stringhe userAgent può causare errori nel rilevamento. È possibile modificare la stringa del browser in base a ciò che si desidera. Nella maggior parte dei casi non ti dice quale dispositivo è.

4

Una libreria che esegue l'analisi per voi è Platform.js ed è possibile utilizzarla sia lato client o lato server come descritto nella loro pagina di introduzione collegata sopra.

Ecco un esempio sul lato client:

<script type='text/javascript' src='platform.js'></script> 
    <script type='text/javascript'> 
     alert('you are using ' + platform.description + ' on an ' + (platform.manufacturer || 'unknown vendor')) 
    </script> 

Nota che si otterrà nessun produttore su browser generici, ma dovrebbe ottenere il marchio su dispositivi mobili per esempio Apple, Samsung, ecc.

+0

Grazie per le informazioni preziose. Verificherò e ti farò sapere. – karthick

0

Tutti i dati che potresti ottenere dal tuo cliente potrebbero essere falsificati, quindi non aspettarti che ogni utente trasmetta solo il 100% di dati corretti.

Ma è possibile ottenere i client useragent tramite req.headers['user-agent'] nel nodoJS e qui è a list of many mobile browsers.

1

Sul lato server, è possibile farlo molto facilmente utilizzando il modulo npm del dispositivo e se si utilizza Express.js è facile come torta.

Installa modulo.

npm i --S express-device 

Aggiungere il codice espresso come middleware.

var express = require('express'); 
var app = express(); 
var device = require('express-device'); 
app.use(device.capture()); 

app.get('/hello',function(req,res) { 
    res.send("Hi to "+req.device.type.toUpperCase()+" User"); 
}); 

app.listen(3000); 
console.log("Listening to Port 3000"); 

Semplice e dolce.

Riferimento: https://codeforgeek.com/2016/07/how-to-detect-device-type-in-nodejs/