2011-09-29 5 views
6

Ho fatto qualche ricerca e penso di conoscere già la risposta, ma mi chiedo se ci sia qualche mezzo con cui è possibile ottenere le dimensioni dello schermo e la densità dei pixel di un dispositivo senza l'uso di javascript o affidarsi alle query multimediali CSS3 .Rileva le dimensioni dello schermo e la densità dei pixel sul lato server?

In sostanza, sto esaminando cosa occorrerebbe per ottenere la risoluzione dello schermo e la densità dei pixel in modo che il server possa decidere quale immagine server in una richiesta URI.

Finora non ho trovato nulla che dica che questo è possibile, ma ho pensato hey, perché non chiedere?

risposta

0

Ruby viene eseguito sul lato server - senza ottenere informazioni dal client, non ha modo di conoscere le funzionalità del client.

+0

Questo è quello che pensavo. Sto cercando di pensare a delle scappatoie ora. – dougoftheabaci

+1

Non sono sicuro che ce ne siano - a meno che il client non ti dica, non vedo come, e ciò significherebbe ottenere alcune informazioni tramite JavaScript (probabilmente). Potresti * essere in grado di ottenere una piccola quantità di informazioni tramite l'agente utente, ma fondamentalmente è inutile. –

+0

I commenti relativi ai downvotes sono apprezzati, in particolare sulle risposte corrette. Determinare la dimensione e la densità dello schermo si basa necessariamente sulle informazioni del cliente, questo è indiscutibile. Ottenere informazioni * accurate * è difficile a fatica –

9

Non sono completamente d'accordo con la risposta corretta sopra riportata. Realisticamente questa risposta è corretta in molti casi ... ma teoricamente non lo è. Spesso le richieste inoltrate a un server Web contengono un campo User-Agent che, in teoria, può essere utilizzato per discernere le informazioni relative alle risoluzioni e alle proprietà dello schermo del dispositivo.

Le richieste Web non passano prima attraverso il client. Passano al server, che serve quindi una pagina al client, quindi il server riceve prima la richiesta ... Ruby on Rails, ad esempio, riceve una richiesta tramite un controller azione su una risorsa e quindi pubblica una pagina per la risposta.

un'occhiata a un esempio UA parser come ad esempio: https://github.com/visionmedia/user-agent

Un agente utente di esempio viene inviato dal mio computer è:

User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.11 (KHTML, like enter code here`Gecko) Chrome/17.0.963.83 Safari/535.11 

penso che è eminentemente possibile fare una buona congettura che cosa il mio schermo la risoluzione (DPI ecc.) viene fornita tramite un server. Avresti, ovviamente, bisogno di una tabella di informazioni sul dispositivo per fare riferimento.

Per i dispositivi mobili diventa ancora più semplice. Se l'User-Agent è un Safari Mobile per iPad:

Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10 

È possibile sapere con certezza quale forte la risoluzione dello schermo si trova sul server. Conoscerai anche l'altezza e la larghezza del browser. Sospetto che lo stesso sia vero per molti dispositivi mobili come Android o Win Mo.

Quindi, in sintesi, sono d'accordo che non sia pratico farlo ma non sono d'accordo.

Credo che Facebook abbia intrapreso un importante progetto di catalogazione di dispositivi e risoluzioni dello schermo e l'abbia reso open source perché hanno affrontato problemi simili durante la creazione dell'app per dispositivi mobili di Facebook, ad es. hanno dovuto catalogare tutte le discrepanze tra tutti i renderer dei browser mobili in modo che potessero personalizzare l'app del cliente in ogni singolo caso. Forse quel progetto potrebbe avere le informazioni necessarie per farlo ... in teoria.

+1

Quindi stai usando OSX su uno qualsiasi dei seguenti, 3-4 MBP e due desktop con una dimensione di monitor arbitraria? E non è molto più semplice sui dispositivi mobili, a meno che tu non stia utilizzando un dispositivo iOS. Meh. –

2

Per qualcosa che è impossibile sembra Mobvious fa un lavoro decente:

Mobvious rileva se la vostra applicazione/sito web si accede da un telefono , o da un tablet o da un personal computer. Puoi quindi utilizzare queste informazioni nella tua app. (Ad esempio, inserisci il codice di front-end in relazione al tipo di dispositivo. C'è un plug-in per Ruby on Rails che ti aiuta con questo .)

https://github.com/jistr/mobvious

+1

Mobvious non considera le dimensioni dello schermo, ma solo l'agente utente, l'URL o i cookie. –

0

Si potrebbe utilizzare Ahoy. Il metodo current_visit contiene le seguenti informazioni.

Quando qualcuno visita il tuo sito Web, Ahoy crea una visita con un sacco di informazioni utili su .

traffico fonte - referrer, dominio di riferimento, pagina di destinazione, di ricerca
parola chiave posizione - paese, regione, e la tecnologia della città - del browser, sistema operativo, e dispositivo di tipo
parametri UTM - sorgente, mezzo, termine, il contenuto, campagna