Mostra notizie nelle discussioni
  • Avatar
    ☺
    Scritto da
    il 2010-06-21 11:42:00.0 alle 2010-06-21 11:42:00.0
    Trollate totali: 3444
    Informatica: vuoto di standard.
    Ho notato che alcuni browser embedded nei dispositivi tipo gli smartphone, quelli per cui provvedere a un layout piu` compatto, inviano nella stringa http_user_agent anche le dimensioni della finestra del browser (che magari per loro e` fissa e corrisponde, almeno in larghezza, alla risoluzione dello schermo), tipo:

    Mozilla/5.0 (blah/3.2; U; Windows CE; PPC; 240x320)

    Ecco, io avrei predisposto una regexp per estrarre la larghezza e usarla indicativamente per adattare elementi come immagini e inputs a una frazione del valore. Se pero` non viene trovata un'indicazione del genere, la funzione che restituisce la larghezza ritorna un valore di default di 240 pixels. Senza passare dal javascript, ma basandosi solo su quel che viene inviato al server nella richiesta, ci potrebbero essere altri modi per capire quant'e` largo il display? O e` piu` o meno tutto quel che si puo` fare?
    • Avatar
      Scritto da
      Non Autenticato
      il 2010-06-21 11:44:00.0 alle 2010-06-21 11:44:00.0
      Re: Informatica: vuoto di standard.

      - Scritto da: alex.tg
      > Ho notato che alcuni browser embedded nei
      > dispositivi tipo gli smartphone, quelli per cui
      > provvedere a un layout piu` compatto, inviano
      > nella stringa http_user_agent anche le dimensioni
      > della finestra del browser (che magari per loro
      > e` fissa e corrisponde, almeno in larghezza, alla
      > risoluzione dello schermo),
      > tipo:
      >
      >
      Mozilla/5.0 (blah/3.2; U; Windows CE; PPC;
      > 240x320)

      >
      > Ecco, io avrei predisposto una regexp per
      > estrarre la larghezza e usarla indicativamente
      > per adattare elementi come immagini e inputs a
      > una frazione del valore. Se pero` non viene
      > trovata un'indicazione del genere, la funzione
      > che restituisce la larghezza ritorna un valore di
      > default di 240 pixels. Senza passare dal
      > javascript, ma basandosi solo su quel che viene
      > inviato al server nella richiesta, ci potrebbero
      > essere altri modi per capire quant'e` largo il
      > display? O e` piu` o meno tutto quel che si puo`
      > fare?

      Google? Mi sembra strano che nessuno abbia trattato l' argomento.
      • Avatar
        ☺
        Scritto da
        il 2010-06-21 11:49:00.0 alle 2010-06-21 11:49:00.0
        Trollate totali: 3444
        Re: Informatica: vuoto di standard.
        > Google? Mi sembra strano che nessuno abbia
        > trattato l'
        > argomento.

        Boh, puo` darsi... non saprei cosa cercare. In proposito a come realizzare un layout "mobile" avevo trovato dei lunghi PDF di cui ho letto minima parte ma che non mi sembra parlassero di una cosa del genere. Anonimo

        Also: l'unico modo che ho trovato per sapere se il client e` un dispositivo "mobile", e` il browser sniffing. Si fa proprio cosi` o c'e` uno standard, magari un header che non conosco? In pratical, per ora faccio cosi`:

        function isMobile () {
        
                $isMobileMatch = array
        
                        (
        
                                'Android' . chr (32),
                                'BlackBerry',
                                'Blazer',
                                'Fennec/',
                                'IEMobile',
                                'iPhone;',
                                'LGE' . chr (32),
                                'LG-',
                                'LGX',
                                'MIB/',
                                'Mini/',
                                'Mobi/',
                                'Mobile/',
                                'MobileExplorer',
                                'PalmOS',
                                'PalmSource',
                                'PPC;',
                                'Profile/',
                                'Smartphone;',
                                'Symbian OS;',
                                'SymbianOS/',
                                'Touch_Pro',
                                'touch_pro',
                                'UCWEB',
                                'UP.Browser/',
                                'UP.Link/',
                                'webOS/',
                                'Windows CE;',
                                'Windows Mobile',
                                'Windows Phone',
                                'XV6850'
        
        
                        );
        
                foreach ($isMobileMatch as $s) {
        
                        $matched = strpos ($_SERVER['HTTP_USER_AGENT'], $s) === false ? false : true;
        
                        if ($matched == true) {
        
                                return (true);
        
                        }
        
                }
        
                return (false);
        
        }


        E per la larghezza dello schermo, cosi`:

        function mobileScreenWidth () {
        
                preg_match_all ('/(^|[\(\)\;])\x20{0,}(\d{2,})x(\d{2,})\x20{0,}([\(\)\;]|$)/', $_SERVER['HTTP_USER_AGENT'], $match);
        
                $i = 0;
                $w = 0;
        
                while (isset ($match[0][$i])) {
        
                        $n = intval ($match[2][$i]);
                        $w = $n > $w ? $n : $w;
        
                        ++ $i;
        
                }
        
                return ($w == 0 ? 240 : $w);
        
        }

        -----------------------------------------------------------
        Modificato dall' autore il 21 giugno 2010 11.55
        -----------------------------------------------------------
        • Avatar
          ☺
          Scritto da
          The Lich
          Übermensch
          il 2010-06-21 20:22:00.0 alle 2010-06-21 20:22:00.0
          Trollate totali: 21351
          Re: Informatica: vuoto di standard.

          - Scritto da: alex.tg
          > > Google? Mi sembra strano che nessuno abbia
          > > trattato l'
          > > argomento.
          >
          > Boh, puo` darsi... non saprei cosa cercare. In
          > proposito a come realizzare un layout "mobile"
          > avevo trovato dei lunghi PDF di cui ho letto
          > minima parte ma che non mi sembra parlassero di
          > una cosa del genere.
          > Anonimo
          >
          > Also: l'unico modo che ho trovato per sapere se
          > il client e` un dispositivo "mobile", e` il
          > browser sniffing. Si fa proprio cosi` o c'e` uno
          > standard, magari un header che non conosco? In
          > pratical, per ora faccio
          > cosi`:
          >
          >
          function isMobile () {
          > 
          >         $isMobileMatch = array
          > 
          >                 (
          > 
          >                         'Android' . chr (32),
          >                         'BlackBerry',
          >                         'Blazer',
          >                         'Fennec/',
          >                         'IEMobile',
          >                         'iPhone;',
          >                         'LGE' . chr (32),
          >                         'LG-',
          >                         'LGX',
          >                         'MIB/',
          >                         'Mini/',
          >                         'Mobi/',
          >                         'Mobile/',
          >                         'MobileExplorer',
          >                         'PalmOS',
          >                         'PalmSource',
          >                         'PPC;',
          >                         'Profile/',
          >                         'Smartphone;',
          >                         'Symbian OS;',
          >                         'SymbianOS/',
          >                         'Touch_Pro',
          >                         'touch_pro',
          >                         'UCWEB',
          >                         'UP.Browser/',
          >                         'UP.Link/',
          >                         'webOS/',
          >                         'Windows CE;',
          >                         'Windows Mobile',
          >                         'Windows Phone',
          >                         'XV6850'
          > 
          > 
          >                 );
          > 
          >         foreach ($isMobileMatch as $s) {
          > 
          >                 $matched = strpos
          > ($_SERVER['HTTP_USER_AGENT'], $s) === false ?
          > false :
          > true;
          > 
          >                 if ($matched == true) {
          > 
          >                         return (true);
          > 
          >                 }
          > 
          >         }
          > 
          >         return (false);
          > 
          > }

          >
          > E per la larghezza dello schermo, cosi`:
          >
          >
          function mobileScreenWidth () {
          > 
          >         preg_match_all
          > ('/(^|[\(\)\;])\x20{0,}(\d{2,})x(\d{2,})\x20{0,}([
          > 
          >         $i = 0;
          >         $w = 0;
          > 
          >         while (isset ($match[0][$i])) {
          > 
          >                 $n = intval ($match[2][$i]);
          >                 $w = $n > $w ? $n : $w;
          > 
          >                 ++ $i;
          > 
          >         }
          > 
          >         return ($w == 0 ? 240 : $w);
          > 
          > }

          > --------------------------------------------------
          > Modificato dall' autore il 21 giugno 2010 11.55
          > --------------------------------------------------

          c'è una classe php che ti sniffa di default tutti i browser mobile esistenti, con una API molto semplice

          The Lich™
          « Non è morto ciò che in eterno può attendere,
          e col passare di strani eoni, anche la morte può morire. »
          Cylon
          Immagine postata dall'utente
<softv>

Pagina generata in 141 millisecondi

Utenti attivi: 12 nell'ultimo minuto, 28 negli ultimi cinque minuti, 58 negli ultimi 15 minuti