Προς το περιεχόμενο

Redirect σε mobile site


nicker

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα.

Θα ήθελα να ρωτήσω πως μπορούμε να κάνουμε redirect ένα website σε mobile έκδοση χωρίς αυτό να έχει ξεχωριστό mobile domain της μορφής m.mywebsite.com

 

Δηλαδή, για να γίνω περισσότερο κατανοητός : Όταν μπαίνει κάποιος με κάποιον browser από τον υπολογιστή του στην σελίδα μας (www.mywebsite.com) εμφανίζεται η κανονική έκδοση του website, αν μπει από το κινητό του (πάλι www.mywebsite.com) εμφανίζεται η mobile έκδοση με παραμετροποιημένο XHTML, CSS κ.τ.λ.

 

Και με χρήση ποιων τεχνολογιών γίνεται αυτό;

Δημοσ.

Έψαξα στο google αρκετά αλλά δεν βρήκα αυτό που ψάχνω. Βρήκα λύση που δουλεύει μόνο με php, δηλαδή, δυναμικό site και με ξεχωριστό domain από ό,τι κατάλαβα. Κι αν είναι στατικό το site; Θέλω απλά να αλλάζει το CSS.

Δημοσ.

Γιατί να χρειάζεσαι ξεχωριστό domain; Αν χρησιμοποιήσεις κάποια server-side γλώσσα όπως η PHP, αρκεί στο αρχικό script να εφαρμόζεις π.χ. μία ρουτίνα detection του User Agent String που στέλνει ο browser. Έτσι, θα καταλάβεις αν ο επισκέπτης μπαίνει από mobile συσκευή ή όχι και κατά την παραγωγή της HTML, στο <head> της σελίδας θα φορτώνεις το αντίστοιχο .css αρχείο.

 

Σε στατικό site, θα πρέπει για τα παραπάνω να χρησιμοποιήσεις Javascript. Αλλά δε θα είναι τόσο αποδοτικό όσο με server side scripting. Επίσης, ενδέχεται να υπάρχει κάποιος νεκρός χρόνος που το site θα αρχίσει να γίνεται render στον browser με την κανονική μορφή ή τη mobile μορφή (ανάλογα ποια θα έχεις ως default) και μετά την εκτέλεση του σχετικού Javascript snippet να βλέπεις αλλαγή της rendered μορφής στην τελική. Αυτό είναι άσχημο αισθητικά.

Δημοσ.

Άρα θα πρέπει να κάνω ένα script σε php που με μια switch να ελέγχει όλους τους mobile browsers; Και ανάλογα το User agent string που θα στείλνει ο εκάστοτε browser θα επιλέγεται το κατάλληλο case από την switch.

Πως θα βρω όμως την λίστα με όλους τους mobile browsers;

Δημοσ.

Άρα θα πρέπει να κάνω ένα script σε php που με μια switch να ελέγχει όλους τους mobile browsers; Και ανάλογα το User agent string που θα στείλνει ο εκάστοτε browser θα επιλέγεται το κατάλληλο case από την switch.

Ναι, ένα σκριπτάκι που θα κάνει περίπου αυτό που λες (μπορείς να το κάνεις και ανάποδα, ίσως βολέψει περισσότερο. Οι δημοφιλείς desktop browsers είναι και λιγότεροι και πιο εύκολα θα πιάνεις μαζικά τις διαφορετικές εκδόσεις τους με κάποιο regular expression). Kαι αναλόγως του αποτελέσματος, θα ορίζει τιμή π.χ. σε μία σχετική PHP session variable.

 

 

Πως θα βρω όμως την λίστα με όλους τους mobile browsers;

Ρίξε μια ματιά εδώ: List of User Agent Strings

Δημοσ.

Αν ψάξεις θα βρεις κ κάποιο έτοιμο script που να κάνει αυτή τη δουλειά, οπότε θα το καταφέρεις πολύ γρήγορα. Ένα πρόβλημα που ίσως έχεις είναι ότι η λίστα / database με τα user agent strings θα πρέπει να ενημερώνεται συχνά. Καλό θα ήταν να έχεις στο κανονικό site ένα link για το mobile site και αντίστροφα.

 

Πολύ ωραίο το link που έδωσες parsifal, προσφέρουν κ API. Το έχεις χρησιμοποιήσει; Ξέρεις πόσο "πλήρες" είναι; Με ενδιαφέρει και το bot detection, βλέπω έχουν και για crawlers τα user agents.

Δημοσ.

Πολύ ωραίο το link που έδωσες parsifal, προσφέρουν κ API. Το έχεις χρησιμοποιήσει; Ξέρεις πόσο "πλήρες" είναι; Με ενδιαφέρει και το bot detection, βλέπω έχουν και για crawlers τα user agents.

Όχι, δεν έχω χρησιμοποιήσει ποτέ το API, αλλά τώρα που βλέπω το documentation του, φαίνεται πολύ απλό και straightforward.

Δημοσ.

Είναι όντως πολύ απλό, αλλά πόσες calls μπορώ να κάνω εγώ; Αν κ θα προτιμούσα κάποιο offline αντίγραφο των data και έναν απλό wrapper για να απαντάει από τα offline data.

 

Πολλές οι απορίες κ μάλλον θα ρωτήσω τους ίδιους... :-)

Δημοσ.

Α, είσαι πονηρούλης, το θέλεις τοπικά για να αποφύγεις το overhead των κλήσεων. Και την πίτα ολόκληρη και το σκύλο χορτάτο. :lol:

 

Δεν φαντάζομαι ότι θα δίνουν τόσο εύκολα αντίγραφο των δεδομένων που έχουν στη βάση τους. Αλλά αν δε σε απασχολεί το ηθικόν της υπόθεσης, φαντάζομαι ότι γίνεται να σκαρώσεις έναν web scraping αυτοματισμό για να τραβήξεις τα δεδομένα.

Δημοσ.

Α, είσαι πονηρούλης, το θέλεις τοπικά για να αποφύγεις το overhead των κλήσεων. Και την πίτα ολόκληρη και το σκύλο χορτάτο. :lol:

:P Χα, χα... δεν το σκέφτηκα έτσι. Αυτό που με απασχόλησε είναι το ότι αν οι κλήσεις που θα κάνω είναι πιο πολλές από αυτές που θέλουν τότε ίσως με κλείσουν. Κάτι που συμβαίνει σε τέτοια API, και αυτό θέλω να αποφύγω.

 

 

Όσο για το 2ο που λες, θα προτιμούσα να αγόραζα το database αυτό. Αν είναι να το χρησιμοποιήσω θα μπει σε εμπορικές εφαρμογές κ δεν είναι ότι πιο τίμιο να τους "κλέψω" τον κόπο.

 

 

Δημοσ.

Όσο για το 2ο που λες, θα προτιμούσα να αγόραζα το database αυτό. Αν είναι να το χρησιμοποιήσω θα μπει σε εμπορικές εφαρμογές κ δεν είναι ότι πιο τίμιο να τους "κλέψω" τον κόπο.

Έτσι, σωστός.

 

 

Πάντως, δε νομίζω ότι θα είναι τόσο δύσκολο ή χρονοβόρο να γράψεις από το μηδέν κάτι που να πιάνει σωστά ένα πολύ πολύ μεγάλο ποσοστό περιπτώσεων. Ραφινάρισμα και παραπάνω χρόνο θα τρως από ένα σημείο και μετά μόνο για το +κάτι% έξτρα στην ακρίβεια (εξαρτάται βέβαια και τί ακριβώς έχεις στο μυαλό σου, εγώ σκέφτομαι ακόμη με τα δεδομένα του topic starter)...

Δημοσ.

Πάντως, δε νομίζω ότι θα είναι τόσο δύσκολο ή χρονοβόρο να γράψεις από το μηδέν κάτι που να πιάνει σωστά ένα πολύ πολύ μεγάλο ποσοστό περιπτώσεων.

Κάτι τέτοιο έχω ήδη φτιάξει. Το βασικό πρόβλημα είναι το update με τα καινούργια user agents.

 

Δεν έχω κάτι άλλο στο νου μου, να ξέρω αν ο επισκέπτης είναι από mobile device ή όχι (για να φορτώσω το ανάλογο template του site μου). Όπως σου είπα, με ενδιαφέρει η ακρίβεια και δεν έχω πρόβλημα να πληρώσω κάτι για αυτό αφού θα το χρησιμοποιήσω σε εμπορική εφαρμογή.

 

Αυτό που έχω είναι σε .NET. Αν το θέλετε μπορώ να το ποστάρω..

Δημοσ.

Καλησπέρα. Το καλύτερο που έχεις να κάνεις είναι να φτιάξεις απλά ένα css ειδικά για handheld devices στο οποίο θα "κρύβεις" τα περιττά στοιχεία με ένα display:none ή διαφορετικά floats κλπ ή θα τους ορίζεις διαφορετικές ιδιότητες που να βολεύουν στην οθόνη του κινητού.

 

Δες κι εδώ

 

http://perishablepress.com/press/2009/08/02/the-5-minute-css-mobile-makeover/

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...