2012-10-01 1 views
8

Meine Website wird Besucher auf eine separate mobile Website zurückversetzen, dies scheint ziemlich einfach nach dem Lesen ein paar Anleitungen online.Lassen Sie die Leute von der mobilen Website auf die Desktop-Site zurückkehren

Ich möchte jedoch, dass die Benutzer auf einen Link auf der mobilen Website klicken können, der sie dann auf die Desktop-Site bringt.

Das Problem, das ich sehe, ist, dass, wenn ich zurück auf die Desktop-Site verlinke es wird nur umleiten sie zurück, wenn sie auf Handy sind?

Wie kann ich das umgehen?

+3

Sie könnten uns vielleicht zeigen, wie Sie derzeit von Desktop auf mobile Website umleiten. – Nelson

+0

Warum müssen Sie sogar separate mobile und Desktop-Sites erstellen? Sie sollten sich wahrscheinlich Medienabfragen ansehen: https://www.google.pl/search?q=media+queries –

+0

@RuFFCut - Problem bereits gelöst. Folgen Sie meinem Ablaufdiagramm (siehe meine Antwort unten) in Ihrer serverseitigen Programmiersprache und erreichen Sie die Erleuchtung der mobilen Umleitung. –

Antwort

7

Wirklich Sie wollen diese Art von Sache serverseitig, nicht clientseitig machen. Das Problem ist, dass Sie einen mobilen Benutzer (bei einer möglicherweise schlechten Verbindung) zwingen, zuerst die gesamte Desktop-Site herunterzuladen (die über 1 MB groß sein könnte), nur damit die JavaScript-Umleitung wirksam wird.

Zu diesem Zeitpunkt hat Ihr mobiler Besucher möglicherweise die Geduld verloren und ist bereits gegangen.

Ich bloggte über den Prozess hier: http://www.9xb.com/blog-2012-08-6-common-pitfalls-when-deploying-a-mobile-site-and-how-they-can-be-avoided/ - Wenn Sie an den unteren Rand des Artikels springen, sehen Sie ein Flussdiagramm, das den gesamten Prozess abbildet. Diese spezielle Methode verwendet Cookies, könnte aber angepasst werden. Das Schöne an diesem Flussdiagramm ist, dass es sprachunabhängig ist - Sie können es in jedem serverseitigen Programmierstil entwickeln.

Für Ihre Bequemlichkeit habe ich das Flussdiagramm unten enthalten (obwohl ich empfehlen Sie den Artikel eine Lese geben):

http://www.9xb.com/wordpress/wp-content/uploads/2012/08/mobile-deployment-small.png

Die Alternative zu all dieser Arbeit, wäre zu entwickeln eine mobile erste responsive Website. Da ich deine Umstände nicht kenne, werde ich es dabei belassen - es ist nicht immer in jedem einzelnen Szenario angemessen.

+0

Upvote diese Frage alle. Ernst. Dies ist die richtige Antwort auf das Problem – naugtur

+0

Vielen Dank; Ich werde es lesen und hoffentlich umsetzen! – RuFFCuT

+0

Url und Bild sind nicht mehr verfügbar ... (alles aus 2012 ist weg.) – Malachi

4

Machen Sie das Redirect-to-Mobile optional (d. H. Einen Link oben auf der Desktop-Seite), oder stellen Sie die mobile Weiterleitung nur auf den ursprünglichen Einstiegspunkt, d. H. mydomain.com. Wenn sie zu mydomain.com/index.html gehen, dann redirect nicht. Auf diese Weise kann Ihr "Zurück zum Desktop" -Link einfach ein normaler Link zu , von index_mobile.html oder wo auch immer Sie sie für ihre mobile Erfahrung senden.

Persönlich würde ich viel lieber das Layout war flüssig genug, um welche Browser trotzdem passen, dann gibt es kein Problem zu beginnen. Denken Sie daran, es gibt jetzt Tabletten in verschiedenen Größen, um die mobilen Gewässer zu trüben.

0

Static

/site/index.html 
/site/mobile/index.html 

Dann können Sie eine Reihe von Dingen verwenden.

  1. Plätzchen
  2. Session States
  3. Benutzer angemeldet und Vorzugseinstellungen (auch gespeicherte Datenbank)

Wenn Sie eine statische Website verwenden - wird schwieriger, wenn es mit JavaScript chaotisch wird Redirects und zwei viele doppelte Seiten. Veröffentlichen Sie Ihren Code und teilen Sie uns mit, wie Sie gerade Ihr Setup durchführen und ich werde meine Lösung aktualisieren.

4

Leider können Sie nach dem window.location change nicht nach dem Referrer suchen. Sie können jedoch einen Hashtag hinzufügen und danach prüfen.

if(window.location.hash == "#stayHereDude"){ 
    // do nothing, or whatever 
} else { 
    window.location = "mobile/index.html"; 
} 

Dann you'ld einen Link zu /index.html#stayHereDude auf der mobilen Seite machen.

1

Auf Ihrer Homepage, die die mobile Umleitung macht, sollten Sie nach etwas im href suchen, das sie als von der mobilen Website kommend markiert. In meinem Fall habe ich einen Link zur Homepage von der mobilen Seite mit einem? M = 0 am Ende davon verwendet. Zum Beispiel: http://www.yoursite.com/?m=0

Dann überprüfen Sie vor der Umleitung auf der Homepage für die m = 0 in der href. Wenn es dort ist, nicht umleiten, wenn es nicht ist, umleiten zu Handy.

if (window.location.href.match("m=0")) { 
} else { 
    window.location = "http://www.yoursite.com/mobilesite"; 
} 

Dies funktioniert, wenn Sie nur von einer einzelnen Seite auf Ihre mobile Website umleiten.

1

Sie können Cookies, Sitzungen oder lokale Speicher verwenden, so dass ein Benutzer, wenn er auf "Zur Desktop-Site wechseln" klickt, einen Wert festlegt.

Nehmen wir an, Sie setzen den Namen auf "mobileOff" und den Wert auf "1" oder "true", wenn ein Benutzer auf einem Mobiltelefon auf "Go to Desktop Site" klickt. Fügen Sie dort, wo Sie Ihre mobile Prüfung durchführen, eine Bedingung hinzu, um im Cookie/Session/localStorage des Benutzers nach mobileOff zu suchen. Wenn diese Option auf true gesetzt ist, umgehen Sie die automatische mobile Weiterleitung, andernfalls laden Sie die Haupt-Desktop-Site.

1

Sie sollten User-Agent-Methode kombinieren, um Gerät clubbed mit Abfrage-String zu dieser Art von Funktionalität zu erkennen. kann so übernehmen Sie Ihren Link

site/default.aspx 

ist, wenn jemand diese Seite, um die User-Agenten schlägt überprüfen und in der Antwort die entsprechende Website oder ein Ereignis besser geben, wenn die erfassten Gerät, wenn ein mobiles Gerät einfach umleiten m.yourdomain.com/site/default.aspx
aber Wenn jemand die Seite site/default.aspx? type = desktop antrifft, überschreiben Sie das Verhalten beim Überprüfen des useragent und rendern Sie die Desktop-Site.

nie sollten Sie zuerst die Desktop-Site und dann über Javascript reditect auf eine mobile Website laden. Tun Sie dies mit Benutzer-Agenten Server-Seite.

Verwandte Themen