Обнаружить iPad 3 в Ruby - PullRequest
       17

Обнаружить iPad 3 в Ruby

1 голос
/ 18 марта 2012

Можно ли обнаружить iPad 3 (он же новый iPad), используя ruby ​​/ rails? Если так, как бы я это сделал?

Ответы [ 3 ]

5 голосов
/ 18 марта 2012

Вы можете обнаружить устройство, но я не думаю, что это возможно, чтобы определить версию устройства. Насколько я знаю, Apple предоставляет строку агента пользователя, которая выглядит следующим образом:

Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 
(KHTML, like   Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10

В этой строке нет информации о версии компьютера, и я не знаю другого способа обнаружения компьютера пользователя.

Если вы не знаете, как получить строку агента пользователя в Rails, отметьте здесь .

4 голосов
/ 13 апреля 2012

Обычно RoR ничего не знает ни о размерах области просмотра браузера, ни о разрешении компьютера, на котором работает браузер.Однако вы можете прочитать их с помощью JavaScript и передать их на сервер в виде скрытого ввода.(См. здесь .)

На данный момент - это важное предостережение - iPad 3 - единственный iPad с разрешением 2048 x 1536. Ваш сценарий будет

(
    (screen.width == 2048 && screen.height == 1536) || 
    (screen.width == 1536 && screen.height == 2048)
) 

, который учитывает возможное разрешение iPad 3 в альбомном и портретном режимах.

request.env['HTTP_USER_AGENT'].match(/iPad/i) сообщит вам, является ли запрашивающее устройство iPad.

Ударьте по обоим, и это iPad 3. Это не совсем удовлетворительно, но работает.

1 голос
/ 17 апреля 2012

Вы можете определить, является ли устройство iPad, взглянув на строку пользовательского агента, вы можете определить, есть ли у устройства дисплей сетчатки, проверив, равен ли window.devicePixelRatio значение 2 (с использованием клиентского JavaScript).Устройство представляет собой iPad3, если iPad находится в строке пользовательского агента и соотношение пикселей равно 2.

. Вы можете передать значение DevicePixelRatio следующим образом:

  • , передав его на сервер в виде файла cookie.
  • динамически добавляя его к URL на вашей странице с помощью JavaScript
  • , динамически помещая его в скрытое поле в форме

Возможно, вам придется перенаправить (используя окно.location) пользователь возвращается на текущую страницу, если cookie не установлен.

...