• User

    Riconoscere media del client

    Ciao a tutti,
    sono alle prese con un dilemma che fino ad ora pare irrisolvibile.

    Sto realizzando pagine xhtml con xquery e utilizzo i css per la formattazione.

    In cima ad ogni pagina ho inserito:

    <link rel="stylesheet" type="text/css" media="screen" href="templates/css/style.css"/>
    <link rel="stylesheet" type="text/css" media="handheld" href="templates/css/mobilestyle.css"/>
    

    che mi permette di caricare correttamente il foglio di stile desiderato per ogni media.

    Ora ho però bisogno di sapere qual'è il media del client, basterebbe anche il contenuto di "media".

    Come posso fare?


  • Super User

    Ciao 🙂

    Perché ti serve sapere che media è? Tanto comunque il foglio di stile lo carica lui, è il client a decidere...

    Comunque una possibile soluzione la butto lì, senza alcuna riprova basata su standard o su prove vere e proprie..

    Puoi pensare di procedere lato server.

    Come fare?

    Se un dispositivo è di tipo handheld richiamerà quel css, se invece è di un altro tipo non lo richiamerà (vado per logica, sarà vero ciò che dico?? boh.. da verificare).

    Comunque puoi impostare il server (mediante htaccess) affinché processi i file css come se fossero php. Quindi tramite php, se il file viene richiesto, puoi riconoscere il tipo di dispositivo e memorizzarlo da qualche parte (cookie, sessione, ip).

    Una soluzione più solida e diffusa, è quella della lista di user agent.
    Cioè hai un array delle stringhe tipiche dei vari dispositivi, così da un confronto capisci che tipo è. Una libreria pronta di questo genere eccola
    http://detectmobilebrowsers.mobi/


  • User

    @claudioweb said:

    Una soluzione più solida e diffusa, è quella della lista di user agent.
    Cioè hai un array delle stringhe tipiche dei vari dispositivi, così da un confronto capisci che tipo è.

    La necessità di scopire che tipo di dispositivo i collega al sito è dettata dal fatto che, spesso, i dispositivi mobili ignorano la direttiva "media" utilizzabile nella dichiarazione dei css per una pagina.

    Alla fine avevo già deciso di adottare proprio la soluzione da te proposta!