Siden også til mobil

Tags:    php javascript

<< < 12 > >>
Hej


Jeg har siddet og tænkt på om man ikke kan bygge på en måde sådan at man lave noget if og else på om den er på mobil eller den ikke er.

Tænkt lidt på hvis jeg vil ind på via mobil og vil se på siden så den gå over til www.m.blabla.dk som er til mobil og hvis man ikke er på mobil så bliver den bare på blabla.dk


F.eks lige sådan her;

Fold kodeboks ind/udJScript kode 


Fundet her;

Den skal bare på en måde finde ud af om man er på mobil eller på computer. og det skal også være sådan at hvis man vil gå via computer og prøve komme ind på mobil siden via computer så skal den bare smide mig over til den rigtigt side.


Håber nogle kan hjælp mig :)

Spørger hvis du ikke lige forstå mig :)




19 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
functionen browser_selector() retunerer et associative array der har følgende nøgler:
['browser'], ['browserversion'], ['os']

nøglen os er pt den eneste du skal bruge, men browser og browservertion kan du muligvis bruge senere

Fold kodeboks ind/udKode 

søger i useragentstring (HTTP_USER_AGENT), om ordet j2me er i, hvis den er, er os et mobilt os, ellers tester jeg om næste ord er i stringen, og gør det sammen

det er grundlæggende det sammen som det "Daniele Buttigli @ 24.12.12 12:38" linker til, bare med mulighed for mere detaljerings grad
Daniele's har bare ennu flere med, så en sammenskrivning kunne være på sin plads

Fold kodeboks ind/udKode 

her bruges bare preg_match til at søge med, da det giver andre muligheder, bla. anvendelse af regulære udtryk, og opdeling i array


'/opera|webtv/i' => indeholder stringen "opera" eller "webtv" ?? stringen er ikke følsom over for store/små borgstaver
/msie\s(\d)/ => der skal søges efter "/msie" der skal efterfølges af en string, der skal efterfølges af ( og et tal )
der anvendes / til at afgrænse start/slut af udtrykket, man kan dog anvende andre tegn
kunne feks se sådan ud '#opera|webtv#i', hvilke man typisk gør hvis / indgår som en del af udtrykket, alternativt skal man escape / hvilke også er meget brugt


Kan jeg ikke også gøre noget i den her still:

jo, borset fra du kun bør convaterer til lowercase en gang, og der rigtig mange mobiler, og som du også kan se af den liste Daniele linkede til.
det smarte ved en function er at det er nemt at genbruge, andre steder, og kun skal vedligeholdes et sted
så napper vi den function Daniele linkede til vil din code se sådan ud:

Fold kodeboks ind/udKode 





det var derfor jeg bad om noget merer code, så jeg kunne se hvordan du bruger den.

dette vil give en loop fejl, og jeg tror du har lavet det sådan, baseret på din loop fejl
index.php
Fold kodeboks ind/udKode 


løsning fjern
Fold kodeboks ind/udKode 


ref
function db_c()
{
$link = @mysqli_connect('localhost', '..', '..', '..');
if(!$link)
..
er du sikker på du kan have en function inde i en function ??
jeg kan se det ligge i en class, har du en variabel der hedder $au ??
dette
if(detect_mobile($ua) ) {
burde være
if(detect_mobile($this->ua) ) {




Det kode jeg sendt med til at start med det virker FINT!. Så jeg har klart svaret!



fint nok du har fundet en (nød)løsning

du skal serverside kigge på brugerens useragent string, da brugeren vil være meget ked at at skulle dedekterer platform client side
eksempler på useragent string http://www.useragentstring.com/

du kan bruge
http://php.net/manual/en/function.get-browser.php
eller selv parse $_SERVER['HTTP_USER_AGENT']
prøv at google php browser detection
kig feks på denne http://bastianallgeier.com/css_browser_selector og omskriv den, så den retunerer et associative array
legede lidt med det i http://www.eksperten.dk/spm/963632

eller kig på færdige classer http://www.phpclasses.org/search.html?words=browser+detected&restrict[0]=C&restrict[1]=B&restrict[2]=D&forums=F&go_search=1&advanced=1
http://www.phpclasses.org/package/2525-PHP-Detect-the-browser-type-and-capabilities-category.html
http://www.phpclasses.org/package/5980-PHP-Detect-the-current-user-browser.html


window size og resolusion skal findes client side
prøv at google js screen resolution detection
http://www.pageresource.com/jscript/jscreen.htm
http://www.ilovecolors.com.ar/detect-screen-size-css-style/
prøv at google js window size detection
ref http://www.webdeveloper.com/forum/showthread.php?68675-Detect-a-window-available-size-width-and-height
Fold kodeboks ind/udKode 

http://stackoverflow.com/questions/7789043/how-can-i-detect-window-size-with-jquery
http://javascript.about.com/od/guidesscriptindex/a/screen.htm




Hvorfor vil du ikke bruge responsive design? :)
Den løsning du har gang i giver dig 2 forskellige hjemmesider at udvikle og vedligeholde, og det er uden tablets.



Hvorfor vil du ikke bruge responsive design? :)
Den løsning du har gang i giver dig 2 forskellige hjemmesider at udvikle og vedligeholde, og det er uden tablets.


Ved godt at det giver 2 forskellig udvikle, men jeg har en ide til hvordan jeg skal bygge den til mobil og jeg er godt i gang :) da jeg godt kun tænke mig et mere bruger villig site til mobil og dog mener jeg helt klart at jeg vil have det sådan fordi der er nogle ting som er på min side nu som jeg ikke ønsker at have på mobil udvikle :)

håber dog du kan følge mig :)

Ønsker dig rigtig god jul :)

fint nok du har fundet en (nød)løsning

du skal serverside kigge på brugerens useragent string, da brugeren vil være meget ked at at skulle dedekterer platform client side
eksempler på useragent string http://www.useragentstring.com/

du kan bruge
http://php.net/manual/en/function.get-browser.php
eller selv parse $_SERVER['HTTP_USER_AGENT']
prøv at google php browser detection
kig feks på denne http://bastianallgeier.com/css_browser_selector og omskriv den, så den retunerer et associative array
legede lidt med det i http://www.eksperten.dk/spm/963632

eller kig på færdige classer http://www.phpclasses.org/search.html?words=browser+detected&restrict[0]=C&restrict[1]=B&restrict[2]=D&forums=F&go_search=1&advanced=1
http://www.phpclasses.org/package/2525-PHP-Detect-the-browser-type-and-capabilities-category.html
http://www.phpclasses.org/package/5980-PHP-Detect-the-current-user-browser.html


window size og resolusion skal findes client side
prøv at google js screen resolution detection
http://www.pageresource.com/jscript/jscreen.htm
http://www.ilovecolors.com.ar/detect-screen-size-css-style/
prøv at google js window size detection
ref http://www.webdeveloper.com/forum/showthread.php?68675-Detect-a-window-available-size-width-and-height
Fold kodeboks ind/udKode 

http://stackoverflow.com/questions/7789043/how-can-i-detect-window-size-with-jquery
http://javascript.about.com/od/guidesscriptindex/a/screen.htm



Jeg vil kigge på alle dine muligheder og komme tilbage så snart som muligt med et svar men det bliver nok i aften eller efter juleaften! :)

Ønsker dig/familie en rigtig god jul!




Som @Rasmus skriver, er den smarteste løsning et Responsive design. Du kan bruge frontend frameworket 'bootstrap' til dette. Det er super smart, og findes med grid mm.

Bootstrap

De har en CSS fil ved navn bootstrap-responsive.css. Den tager sig af den slags, hvis du naturligvis sætter det op sådan.



@daniele

Prøve læse hvad jeg skrive til rasmus. Jeg ønsker som sagt ikke at det skal være det samme design til mobil som til computere. Derfor valg jeg at gøre det på den her måde så de ting blive ad skildt fra hinanden..

Så det skal være sådan her

Mobil.vlavla.dk det skal være til mobil og der vil jeg bygge et design til mobil.


Vlavla.dk er til computer kun


Det er sådan jeg har tænke mig det skal være fordi jeg vil gerne give mobil siden et helt andet design til mobil og jeg har lavet det på en fed måde til mobil


God jule til dig daniele ;)



Hvis du laver dit eget responsive design, kan du jo styre hvordan din mobile udgave skal se ud uden at lave et helt nyt design. Men det styrer du selv.



<< < 12 > >>
t