-
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?-
Re: Informatica: vuoto di standard.Scritto daNon Autenticatoil 2010-06-21 11:44:00.0 alle 2010-06-21 11:44:00.0
- 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.-
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.
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
------------------------------------------------------------
Re: Informatica: vuoto di standard.Scritto daThe LichÜbermenschil 2010-06-21 20:22:00.0 alle 2010-06-21 20:22:00.0Trollate totali: 21351
- 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.
>
>
> 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. »

-
-
-
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?
Fare un css per media="handheld"?http://www.w3.org/TR/CSS2/media.html

-----------------------------------------------------------
Modificato dall' autore il 21 giugno 2010 11.58
------------------------------------------------------------
Re: Informatica: vuoto di standard.>
> Fare un css per media="handheld"?
>http://www.w3.org/TR/CSS2/media.html

Sempre sui css:
http://dev.opera.com/articles/view/how-to-serve-th...
@media only all and (max-width: 480px) {...}-
Re: Informatica: vuoto di standard.> http://dev.opera.com/articles/view/how-to-serve-th

>
> @media only all and (max-width: 480px) {...}
um... ora me lo leggo, grazie.
-
-
Re: Informatica: vuoto di standard.> Fare un css per media="handheld"?
>http://www.w3.org/TR/CSS2/media.html

Si` quello l'avevo trovato nel PDF chilometrico, e l'ho gia` fatto, ma ci sono cose che non posso mettere nel CSS, tipo ridimensionare certi elementi che hanno bisogno di misure in pixels, per esempio le mappine di Google Maps.-
Re: Informatica: vuoto di standard.- Scritto da: alex.tg
> > Fare un css per media="handheld"?
> >http://www.w3.org/TR/CSS2/media.html

>
> Si` quello l'avevo trovato nel PDF chilometrico,
> e l'ho gia` fatto, ma ci sono cose che non posso
> mettere nel CSS, tipo ridimensionare certi
> elementi che hanno bisogno di misure in pixels,
> per esempio le mappine di Google
> Maps.
Potresti verificare via js che l'area del browser sia sufficiente, in tal caso, via js inserisci la mappina di google maps, else un link a una pagina con la mappina per mobile devices.-
Re: Informatica: vuoto di standard.> Potresti verificare via js che l'area del browser
> sia sufficiente, in tal caso, via js inserisci la
> mappina di google maps, else un link a una pagina
> con la mappina per mobile
> devices.
Umm... si`. E` una soluzione che mi sposta il codice per inserire la mappina dal PHP al JS, pero` la posso adottare.
-
-
Re: Informatica: vuoto di standard.Scritto daThe LichÜbermenschil 2010-06-21 20:20:00.0 alle 2010-06-21 20:20:00.0Trollate totali: 21351
-
Re: Informatica: vuoto di standard.> usi le google maps 3.0 e ci piazzi un tag meta
>
> <meta name="viewport" content="initial-scale=1.0,
> user-scalable=no"
> />
>
> così la google map si scala automaticamente al
> 100% (tanto su un cellulare a dimensioni
> inferiori ci vuole il microscopio per
> vederla)
Interessante!
PS.
Sono un bamba.
(me l'aspettavo e mancava)
-
-
-
-