Redirekte iphone og Android

En tråd i 'PHP, SQL og databaser' startet av Tonny Kluften, 8 Okt 2011.

  1. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.931
    Har et nettsted hvor jeg trenger å redirekte iphone og Android til hver sin side.
    Tenker å sette inn PHP i head. Hvordan skal koden se ut?
    Evt. mulig å bruke htaccess også, vil det være enklere?
     
  2. Dag Frogner

    Dag Frogner Supermedlem

    Innlegg:
    4.692
  3. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.931
    Takk Dag.
    Det ble en javascriptløsning siden jeg ikke fikk tilgang på .htaccess.

    Slik:

    Kode:
    <script type="text/javascript">
    // iPhone Version: 
    if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) { 
    window.location = "http://m.bookofzeus.com/"; 
    } 
    // Android Version: 
    if(navigator.userAgent.match(/android/i)) { 
    window.location = "http://m.bookofzeus.com/"; 
    }
    </script>
    
     
  4. adeneo

    adeneo Medlem

    Innlegg:
    1.611
    Uten at jeg har testet det, så virker det mer fornuftig å stappe alt i en regex og teste denne for mobile "user agents".

    Noe sånt:

    HTML:
    var mobil = (/iphone|ipad|ipod|android|blackberry|mini|windows\sce|palm/i.test(navigator.userAgent.toLowerCase()));  
    
    if (mobil) {  
          document.location = "http://www.minside.no/mobil.html";  
    }  

    Husk å ha en godt synlig link tilbake til hovedsiden for de som ikke ønsker mobilsiden, og bruk en cookie slik at hvis man har valgt hovedsiden tidligere så slipper man å komme til mobilsiden hver gang man besøker siden.
    PHP hadde nok egentlig vært en bedre løsning ettersom man slipper å laste inn hovedsiden før man blir sendt videre til mobilsiden.
     
  5. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.931
    Takk adeneo, nyttig kode. Men jeg trenger å redirecte iphone til en side, android til en annen, alle andre mobil devices skal ikke redirectes, de skal gå til hovedsiden. Kanskje også iPad fortjener egen side.
     
    Sist redigert: 16 Feb 2012
  6. typisk Utvikler

    Innlegg:
    309
    Å bruke javascript til dette er ikke bra. Hva om det er avslått? Skal dette brukes i Wordpress eller annet CMS? Om du kan kjøre PHP-kode (krever redigering av header.php i WP) er det uten tvil den beste løsningen (utenom .htaccess).
     
  7. adeneo

    adeneo Medlem

    Innlegg:
    1.611
    Regnet i grunn med det, jeg bare så det var samme linken i eksemplene dine, og så plutselig for meg en enklere måte å skrive omtrent akkurat det samme på.
    Ofte er det nettopp slik at man setter opp en egen side for apple dingser og en for android dingser, og alle de andre dingsene blir for mye greier å ha egne sider for uansett.

    Det er nok uansett mange som ønsker den vanlige siden selv om de sitter på en iPad, så en eller annen løsning som ikke gjør det veldig slitsomt med videresendinger osv. er alltid en god ide.

    Er ellers enig i at PHP nok er en bedre løsning, men hvem fa3n er det som har javascript slått av, det blir jo som surfe med IE4, eller Lynx (grøss) :eek:
     
  8. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.931
    Ja, og jeg vil helst bruke .htaccess, men dette er uansett en midlertidig løsning for et par mnd. tid.
     
  9. Sono Juventino

    Sono Juventino Medlem

    Innlegg:
    15
    Er redirecting til en annen side hele poenget, er handler det om optimalisert design for mobile enheter?

    I så fall vil svaret være media queries i CSS3. Har ikke testet det selv ennå, men det skal funke knirkefritt. Det skal være mulig å skille mellom iPhone og iPad. Klarte ikke finne noe om android, så da faller det hele kanskje i grus?

    Spesielt avansert er det dog ikke. Sjekk ut artikkelen til WebDesignerWall.com :)

    Et lite galleri med fremvisning av nettsider som tar i bruk media queries.
     
  10. Pong

    Pong Jeg selger sʇɥƃıluʍop :)

    Innlegg:
    3.454
    Hvis jeg har forstått ting riktig, så handler css3 (som css og css2) fremdeles om utforming - når du ønsker å ikke bare skjule info, men heller ønsker å ikke sende visse biter til mottakeren, må du gjøre en del ting server-side.
    Det er det som er hovedulempen med 'responsive design', for meg.

    Uansett: hvis du har lov å kjøre php på serveren:
    Kode:
    function mobile_user_agent_switch(){
    	$device = '';
    
    	if( stristr($_SERVER['HTTP_USER_AGENT'],'ipad') ) {
    		$device = "ipad";
    	} else if( stristr($_SERVER['HTTP_USER_AGENT'],'iphone') || strstr($_SERVER['HTTP_USER_AGENT'],'iphone') ) {
    		$device = "iphone";
    	} else if( stristr($_SERVER['HTTP_USER_AGENT'],'blackberry') ) {
    		$device = "blackberry";
    	} else if( stristr($_SERVER['HTTP_USER_AGENT'],'android') ) {
    		$device = "android";
    	}
    
    	if( $device ) {
    		return $device; 
    	}
    	return false;
    }
    
    Det er jo litt bedre enn javascript.
     
  11. Thomas Pedersen

    Thomas Pedersen Pornogründer

    Innlegg:
    632
    vil anbefale å gjøre dette i php. Da vi redirekten skje før siden lastes. Ved å bruke javascript, så vil brukeren først laste siden, deretter bli redirektet etter at javascriptet er blitt lastet.
     
  12. Sono Juventino

    Sono Juventino Medlem

    Innlegg:
    15
    Du tar ikke feil. Metoden din er sånn sett langt bedre enn min med mindre man bare ønsker å endre utformingen. jQuery fungerer f. eks ikke på endel håndholdte enheter, men vil lastes ned uavhengig av dette. Sånn sett kan man spare brukerne for endel bandbredde med metoden din. :)
     
  13. nukleuz Medlem

    Innlegg:
    44
    Jo, men jeg ville heller valgt "strpos+strtolower" fremfor "stristr": Pastebin &bull; stristrVSstrpos.php &bull; development.giaever.org
     
  14. adeneo

    adeneo Medlem

    Innlegg:
    1.611
    Løsningen på akkurat det problemet (hvis man ikke bruker redirect) er å bruke standard JS før biblioteket lastes inn til å dynamisk sette inn jQuery linken ut i fra hvilken type enhet det er, og så bruke jQuery Mobile på håndholdte enheter.
    Kan selvfølgelig også brukes på sider kun for mobil osv.
     

Del denne siden