Ho bisogno di rendering della pagina in modo diverso se è acessed da un iPhone/iPod Touch. Suppongo che l'informazione sia nell'oggetto di richiesta, ma quale sarebbe la sintassi?Come posso rilevare se l'app appengine è accessibile da un iphone/ipod touch?
risposta
Questa è la sintassi che cercavo, funziona con iPhone e iPod Touch:
uastring = self.request.headers.get('user_agent')
if "Mobile" in uastring and "Safari" in uastring:
# do iphone/ipod stuff
This article delinea alcuni modi di rilevare un iPhone attraverso controllando la variabile agente HTTP_USER_AGENT. A seconda di dove vuoi fare il check-in (livello HTML, Javascript, CSS, ecc.), Sono sicuro che puoi estrapolarlo nella tua app Python. Scusa, non sono un tipo pitone. 8^D
Controllare l'user agent. Sarà
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3
Non sono sicuro di come fare questo con AppEngine, ma il codice PHP equivalente può essere trovato qui: http://www.mattcutts.com/blog/iphone-user-agent/
Beh, cambierà. I bit chiave che un'app dovrebbe verificare sono "iPhone" e "AppleWebKit": l'utilizzo di quella stringa esatta ti morderà nel culo la prossima volta che Safari riceverà un rilascio. – ceejayoz
No, i bit chiave sono Mobile/(qualcosa) e Safari/(qualcosa). "iPhone" non sarà presente su un iPod touch. –
Come si presenta un androide? Si basa sul webkit e non sarei sorpreso se mettesse Safari nella sua UA (chrome fa questo, iirc). –
Ecco come fare implementarlo come middleware in Django, assumendo che questo sia cosa stai usando su Appengine.
class DetectiPhone(object):
def process_request(self, request):
if 'HTTP_USER_AGENT' in request.META and request.META['HTTP_USER_AGENT'].find('(iPhone') >= 0:
request.META['iPhone'] = True
Fondamentalmente cercare "iPhone" in HTTP_USER_AGENT. Tieni presente che iPod Touch ha una firma leggermente diversa rispetto all'iPhone, da cui la ricerca "iPhone" ampia anziché una ricerca più restrittiva.
se si sta utilizzando il quadro webapp di serie il programma utente sarà nell'istanza richiesta. Questo dovrebbe essere abbastanza buono:
if "iPhone" in request.headers["User-Agent"]:
# do iPhone logic
Credo che il codice dovrebbe dire self.request.headers [ "User-Agent"] Questa grande opera per me. Grazie – mcotton
La Using the Safari on iPhone User Agent String articolo sul sito web di Apple indicano i diversi agenti utente per iPhone e iPod touch.
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3
Mozilla/5.0 (iPod; U; CPU like Mac OS X; en) AppleWebKit/420.1 (KHTML, like Gecko) Version/3.0 Mobile/4A93 Safari/419.3
Mozilla/5.0 (iPhone; U; CPU iPhone OS 2_0 like Mac OS X; en-us) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/XXXXX Safari/525.20
import os
class MainPage(webapp.RequestHandler):
@login_required
def get(self):
userAgent = os.environ['HTTP_USER_AGENT']
if userAgent.find('iPhone') > 0:
self.response.out.write('iPhone support is coming soon...')
else:
self.response.out.write('Hey... you are not from iPhone...')
- 1. Come posso rilevare se Dispatcher.DisableProcessing è attivo?
- 2. Come rilevare se un iframe è accessibile senza generare un errore?
- 3. Come posso rilevare se un prodotto firewall è abilitato?
- 4. phonegap: è possibile rilevare swipeLeft e SwipeRight touch da Javascript?
- 5. Come posso rilevare se un iframe è stato caricato?
- 6. Come posso rilevare se un utente è lontano dalla tastiera?
- 7. Come rilevare se è presente un microfono
- 8. Come posso rilevare se un test NUnit è in esecuzione da all'interno di TeamCity?
- 9. Come posso rilevare se l'IDE Delphi specifico è in esecuzione?
- 10. Come posso rilevare se la telecamera è limitata dall'utente
- 11. Rilevare se un elemento è realmente visibile
- 12. Come posso rilevare se il volume è disattivato?
- 13. Come posso rilevare se l'utente è su localhost in PHP?
- 14. come posso rilevare se window.location non è riuscito?
- 15. Come rilevare se un dato numero è un numero intero?
- 16. HTML5 AppCache: come implementare la modalità offline se il server non è accessibile ma la rete è accessibile
- 17. IOError: [Errno 13] file non accessibile con Google AppEngine 1.6.1
- 18. Come posso rilevare se un dispositivo iOS supporta l'effetto sfocatura?
- 19. Rilevare se NSString è un numero float
- 20. Come rilevare se Moment js è caricato da CDN
- 21. Come posso rilevare se il mio assembly .NET è in esecuzione da un sito Web o da un computer desktop?
- 22. rilevare se un oggetto è vuoto
- 23. Come posso rilevare se un browser supporta MJPEG?
- 24. Come posso rilevare se un selettore restituisce null?
- 25. Come rilevare se un controllo di input HTML5 è supportato?
- 26. Come rilevare se $ _POST è impostato?
- 27. Come posso rilevare se un Mac ha un display Retina da Java?
- 28. Come rilevare se Daydream è attivo?
- 29. Come posso rilevare se un'unità ha un cestino in C#?
- 30. Rilevare se JIT è disponibile
ottengo 'AttributeError: oggetto 'WSGIRequest' non ha alcun attributo 'headers''. – noio