Подтвердить что ты не робот

Как определить, подключено ли приложение appengine к iphone/ipod touch?

Мне нужно визуализировать страницу по-другому, если она затрагивает iphone/ipod touch. Я полагаю, что информация находится в объекте запроса, но какой будет синтаксис?

4b9b3361

Ответ 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...')