Мне нужно визуализировать страницу по-другому, если она затрагивает iphone/ipod touch. Я полагаю, что информация находится в объекте запроса, но какой будет синтаксис?
Как определить, подключено ли приложение appengine к iphone/ipod touch?
Ответ 1
Это синтаксис, который я искал, работает с iphone и ipod touch:
uastring = self.request.headers.get('user_agent')
if "Mobile" in uastring and "Safari" in uastring:
# do iphone / ipod stuff
Ответ 2
В этой статье описывается несколько способов обнаружения iPhone через проверку переменной агента HTTP_USER_AGENT. В зависимости от того, где вы хотите выполнить проверку (уровень HTML, Javascript, CSS и т.д.), Я уверен, что вы можете экстраполировать это в свое приложение Python. Извините, я не парень-питон. 8 ^ D
Ответ 3
Использование Safari на iPhone User Agent String на веб-сайте Apple показывает различные пользовательские агенты для iPhone и 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
Ответ 4
Здесь как реализовать его как промежуточное ПО в Django, предполагая, что вы используете для 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
В основном искать "iPhone" в HTTP_USER_AGENT. Обратите внимание, что iPod Touch имеет немного отличающуюся подпись, чем iPhone, поэтому широкий поиск "iPhone" вместо более строгого поиска.
Ответ 5
если вы используете стандартную платформу webapp, пользовательский агент будет находиться в экземпляре запроса. Это должно быть достаточно хорошим:
if "iPhone" in request.headers["User-Agent"]:
# do iPhone logic
Ответ 6
Проверьте агент пользователя. Это будет
Mozilla/5.0 (iPhone; U; CPU, как Mac OS X; ru) AppleWebKit/420 + (KHTML, например Gecko) Версия /3.0 Mobile/1A543a Safari/419.3
Я не уверен, как это сделать с appengine, но эквивалентный PHP-код можно найти здесь: http://www.mattcutts.com/blog/iphone-user-agent/
Ответ 7
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...')