Muszę renderować stronę inaczej, jeśli jest dostępna przez dotyk iphone/ipod. Przypuszczam, że informacje są w obiekcie żądania, ale jaka byłaby składnia?Jak wykryć, czy moja aplikacja appengine jest dostępna przez dotyk iphone/ipod?
Odpowiedz
To składnia szukałem, współpracuje z iPhone i iPod touch:
uastring = self.request.headers.get('user_agent')
if "Mobile" in uastring and "Safari" in uastring:
# do iphone/ipod stuff
This article przedstawia kilka sposobów wykrywania iPhone'a poprzez sprawdzenie zmiennej agenta HTTP_USER_AGENT. W zależności od tego, gdzie chcesz sprawdzić (poziom HTML, JavaScript, CSS itp.), Jestem pewien, że możesz to ekstrapolować do aplikacji Python. Przepraszam, nie jestem facetem z Pythona. 8^D
Sprawdź klienta użytkownika. To będzie
Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3
Nie jestem pewien, jak to zrobić z AppEngine, ale równoważny kod PHP można znaleźć tutaj: http://www.mattcutts.com/blog/iphone-user-agent/
Cóż, to się zmieni. Kluczowymi bitami, które powinna sprawdzić aplikacja, są "iPhone" i "AppleWebKit" - użycie tego konkretnego ciągu ugryzie cię w tyłek, gdy następnym razem Safari otrzyma punktową wersję. – ceejayoz
Nie, kluczowymi bitami są Mobile/(coś) i Safari/(coś). "iPhone" nie będzie tam na iPodzie touch. –
Co pokazuje Android? Jest oparty na webkicie i nie zdziwiłbym się, gdyby Safari zawierało UA (chrome to robi, iirc). –
Oto jak to zrobić wdrożyć go jako warstwy pośredniej w Django, zakładając, że jest co używasz na 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
Zasadniczo poszukaj "iPhone" w HTTP_USER_AGENT. Zauważ, że iPod Touch ma nieco inny podpis niż iPhone, stąd szerokie "iPhone" zamiast bardziej restrykcyjnego wyszukiwania.
jeśli używasz standardowej architektury internetowej, agent użytkownika będzie w instancji żądania. To powinno być wystarczająco dobre:
if "iPhone" in request.headers["User-Agent"]:
# do iPhone logic
Myślę, że Twój kod powinien brzmieć self.request.headers ["User-Agent"] To działa doskonale dla mnie. Dzięki – mcotton
Using the Safari on iPhone User Agent String artykuł na stronie Apple wskazują różne aplikacje klienckie dla iPhone i 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. Jak wykryć, czy moja aplikacja jest piaskownica?
- 2. Moja aplikacja nie jest dostępna na tablety w Google Play
- 3. Jak wykryć, czy ekran jest wrażliwy na dotyk?
- 4. Czy jest dostępna bezpłatna aplikacja mobilna CMS?
- 5. Jak wykryć, że moja aplikacja straciła ostrość w Qt?
- 6. Sprawdź, czy moja aplikacja IOS jest zaktualizowana
- 7. Jak wykryć dotyk w określonym obszarze?
- 8. Jak mogę sprawdzić, czy moja aplikacja jest aktywna?
- 9. Jak sprawdzić, czy moja aplikacja jest domyślnym programem uruchamiającym?
- 10. Czy jest dostępna wersja SqlJ obsługiwana przez środowisko Java 8?
- 11. wykryć każdy dotyk w widoku (iPhone SDK)
- 12. Sprawdź, czy aplikacja jest dostępna w Android Market
- 13. WIX: Jak wykryć, czy zainstalowana jest aplikacja innej firmy?
- 14. Jak wykryć, czy w Korei jest używana aplikacja na Androida?
- 15. Sprawdź, czy intencja jest dostępna.
- 16. Wykryj, czy moja aplikacja działa pod IDE "Delphi 2007 .Net"
- 17. Jak wykryć, czy głośność jest wyciszona?
- 18. intent android, gdy moja aplikacja jest zainstalowana
- 19. Wykryto, czy aplikacja jest zainstalowana, czy nie?
- 20. Czy płatna aplikacja na Androida jest bezpłatna przez tydzień?
- 21. Moja aplikacja na iOS została usunięta przez pomyłkę
- 22. Jak określić, kiedy moja aplikacja ma zostać zakończona w tle?
- 23. Jak sprawdzić, czy moja aplikacja może wyświetlać powiadomienia?
- 24. Jak wykryć, czy klawiatura użytkownika jest Swype?
- 25. Sprawdź, czy dostępna jest funkcja intri
- 26. Jak sprawdzić, czy moja aplikacja działa jako aplikacja 32-bitowa czy 64-bitowa?
- 27. Jak sprawdzić, czy moja aplikacja jest ustawiona domyślnie, czy nie w systemie Android?
- 28. Jak sprawdzić, czy proces jest uruchamiany przez Menedżera sterowania usługami
- 29. Jak wykryć, czy aplikacja na Androida została zatrzymana lub odinstalowana?
- 30. Java na komputerze Mac: Jak wykryć, kiedy moja aplikacja otrzymuje fokus?
Otrzymuję obiekt AttributeError: 'WSGIRequest' nie ma atrybutów "nagłówków". – noio