Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Можно ли определить планшет через User Agent
 
 автор: Владимир55   (14.11.2013 в 01:01)   письмо автору
 
 

Можно ли исходя из User Agent определить, что пользователь просматривает сайт с помощью планшета?

(а не телефона и не РС).

  Ответить  
 
 автор: Sfinks   (14.11.2013 в 08:23)   письмо автору
 
   для: Владимир55   (14.11.2013 в 01:01)
 

Ответил тут: http://softtime.ru/forum/read.php?id_forum=1&id_theme=89685#post538088

  Ответить  
 
 автор: Владимир55   (14.11.2013 в 14:40)   письмо автору
 
   для: Sfinks   (14.11.2013 в 08:23)
 

Про WURFL я давно знаю, и у него есть русскоязычное описание http://www.ibm.com/developerworks/ru/library/mo-wurfl-1/

По идее, это идеальное решение всех вопросов, исключающее необходимость классификации устройств. Планшет или телефон - безразлично, есть о нем есть информация, позволяющая правильно вывести страницу.

Однако, не все так просто - для полноты оптимизации необходимо знать физический размер экраны - в дюймах или в миллиметрах. А вот этот параметр мне там найти не удается!

Он вообще-то там есть?
(Геометрический размер экрана).

  Ответить  
 
 автор: Sfinks   (15.11.2013 в 08:50)   письмо автору
 
   для: Владимир55   (14.11.2013 в 14:40)
 

> Он вообще-то там есть? (Геометрический размер экрана).
В принципе есть. Но далеко не для всех устройств и не понятно, в чем измеряется.

Вот например одно из устройств где эти параметры есть:
  <device id="samsung_gt_i7500_ver1_subcupcake" user_agent="Mozilla/5.0 (Linux; U; Android 1.5; fr-fr; Galaxy Build/CUPCAKE) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2" fall_back="samsung_gt_i7500_ver1">
    <group id="product_info">
      <capability name="release_date" value="2009_march"/>
    </group>
    <group id="display">
      <capability name="columns" value="25"/>
      <capability name="physical_screen_height" value="65"/>
      <capability name="physical_screen_width" value="49"/>

      <capability name="max_image_width" value="300"/>
      <capability name="rows" value="21"/>
      <capability name="resolution_width" value="320"/>
      <capability name="resolution_height" value="480"/>
    </group>
  </device>

А вот другое, и не понятно что с этим вообще делать:
  <device id="htc_magic_ver1_subht03a_docomo" user_agent="Mozilla/5.0 (Linux; U; Android 1.5; ja-jp; HT-03A Build/CDB72) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1" fall_back="htc_magic_ver1_cupcake">
    <group id="product_info">
      <capability name="model_name" value="HT-03A"/>
      <capability name="model_extra_info" value="DoCoMo"/>
    </group>
    <group id="xhtml_ui">
      <capability name="accept_third_party_cookie" value="false"/>
    </group>
  </device>

Хотя, если продолжить поиск, по значению атрибута fall_back="htc_magic_ver1_cupcake", то можно найти:
  <device id="htc_magic_ver1_cupcake" user_agent="Mozilla/5.0 (Linux; U; Android 1.5; en-us; HTC Magic Build/CUPCAKE) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1" fall_back="htc_magic_ver1">
    <group id="product_info">
      <capability name="uaprof" value="http://www.htcmms.com.tw/Android/Common/HTC_Magic/ua-profile.xml"/>
    </group>
    <group id="object_download">
      <capability name="directdownload_support" value="true"/>
      <capability name="oma_support" value="true"/>
    </group>
    <group id="sound_format">
      <capability name="aac" value="true"/>
    </group>
  </device>

И продолжив дальше, fall_back="htc_magic_ver1", уже информации побольше:
  <device id="htc_magic_ver1" user_agent="Mozilla/5.0 (Linux; U; Android 1.5; en-us; sapphire; HTC_Magic) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1" fall_back="generic_android" actual_device_root="true">
    <group id="product_info">
      <capability name="has_qwerty_keyboard" value="true"/>
      <capability name="device_os" value="Android"/>
      <capability name="device_claims_web_support" value="true"/>
      <capability name="uaprof" value="http://www.google.com/oha/rdf/ua-profile-kila.xml"/>
      <capability name="model_name" value="Magic"/>
      <capability name="device_os_version" value="1.5"/>
      <capability name="brand_name" value="HTC"/>
      <capability name="release_date" value="2009_april"/>
    </group>
    <group id="wml_ui">
      <capability name="table_support" value="true"/>
    </group>
    <group id="display">
      <capability name="physical_screen_height" value="68"/>
      <capability name="columns" value="25"/>
      <capability name="physical_screen_width" value="46"/>
      <capability name="rows" value="21"/>
      <capability name="max_image_width" value="315"/>
      <capability name="resolution_width" value="320"/>
      <capability name="resolution_height" value="480"/>
      <capability name="max_image_height" value="460"/>
    </group>
    <group id="image_format">
      <capability name="jpg" value="true"/>
      <capability name="gif" value="true"/>
      <capability name="png" value="true"/>
      <capability name="colors" value="65536"/>
    </group>
    <group id="mms">
      <capability name="mms_png" value="true"/>
      <capability name="mms_max_size" value="307200"/>
      <capability name="mms_max_width" value="640"/>
      <capability name="mms_max_height" value="480"/>
      <capability name="mms_gif_static" value="true"/>
      <capability name="mms_midi_monophonic" value="true"/>
      <capability name="mms_wbmp" value="true"/>
      <capability name="mms_amr" value="true"/>
      <capability name="mms_jpeg_baseline" value="true"/>
    </group>
    <group id="sound_format">
      <capability name="aac" value="true"/>
      <capability name="mp3" value="true"/>
      <capability name="amr" value="true"/>
      <capability name="midi_monophonic" value="true"/>
      <capability name="imelody" value="true"/>
    </group>
    <group id="pdf">
      <capability name="pdf_support" value="false"/>
    </group>
    <group id="bearer">
      <capability name="wifi" value="true"/>
      <capability name="max_data_rate" value="1800"/>
    </group>
    <group id="streaming">
      <capability name="streaming_vcodec_h263_0" value="10"/>
      <capability name="streaming_acodec_aac" value="ltp"/>
      <capability name="streaming_3gpp" value="true"/>
      <capability name="streaming_vcodec_h264_bp" value="1"/>
      <capability name="streaming_acodec_amr" value="nb"/>
      <capability name="streaming_vcodec_mpeg4_sp" value="0"/>
      <capability name="streaming_video" value="true"/>
      <capability name="streaming_mp4" value="true"/>
    </group>
    <group id="drm">
      <capability name="oma_v_1_0_forwardlock" value="true"/>
    </group>
    <group id="object_download">
      <capability name="directdownload_support" value="true"/>
      <capability name="oma_support" value="true"/>
      <capability name="video" value="true"/>
    </group>
    <group id="playback">
      <capability name="playback_acodec_aac" value="lc"/>
      <capability name="playback_3gpp" value="true"/>
      <capability name="playback_mp4" value="true"/>
      <capability name="playback_acodec_amr" value="nb"/>
      <capability name="playback_vcodec_h263_0" value="10"/>
      <capability name="playback_vcodec_mpeg4_sp" value="0"/>
    </group>
    <group id="xhtml_ui">
      <capability name="xhtml_can_embed_video" value="plain"/>
      <capability name="xhtml_file_upload" value="supported"/>
    </group>
  </device>

И интересующая нас есть.... Но вот на сколько она соответсятвует действительности, это вопрос.

В принципе, если предположить, что:
      <capability name="physical_screen_height" value="68"/> 
      <capability name="physical_screen_width" value="46"/> 
указаны в миллиметрах, то можно рассчитать:
68*68+46*46= 6740
Извлекаем корень = 82,097 // диагональ в мм
переводим в дюймы: 82,097/25,4= 3,2 // дюйма

Открываем описание модели, с которой мы начали поиск: HTC HT-03A, и смотрим:
display_size: 3.2"
В принципе совпадает.....
Как-то так

  Ответить  
 
 автор: Владимир55   (16.11.2013 в 16:23)   письмо автору
 
   для: Sfinks   (15.11.2013 в 08:50)
 

Геометрические размеры измеряются в миллиметрах и указание на это есть в доках.

Но вообще все не так просто.

Вы обратили внимание на то, что юзер-агенты имеют какой-то неестественный вид? К примеру,
user_agent="DO_NOT_MATCH_GENERIC_MOBILE"
user_agent="DO_NOT_MATCH_MOZILLA"
user_agent="MAUI WAP Browser"

Очевидно, что ни один браузер такой инфы не дает.

И даже для конкретных моделей юзер-агенты какие-то уж слишком «причесанные»:
user_agent="SonyEricssonS710a"
user_agent="SonyEricssonK750i/R1B"

Как можно предположить, это результат предшествующей логической обработки, которой, вероятно, и занимаются две сотни РНР файлов, имеющихся в дистрибутиве.

Беру для примера конкретный юзер-агент своего смартфина:
Mozilla/5.0 (Linux; Android 4.0.4; Philips W536 Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19


В файле wurfl.xml такого аппарата нет. Соответственно, и в выдаче показывается нечто, не соответствующее действительности…

С планшетом та же история...

А вот юзер-агент какого-то посетитля сайта:
Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25


В файле wurfl.xml его тоже нет, но определяется вполне правдоподобно:
http://wowa55.pz9.ru/wurfl/examples/demo/index.php?ua=Mozilla%2F5.0+%28iPad%3B+CPU+OS+6_0+like+Mac+OS+X%29+AppleWebKit%2F536.26+%28KHTML%2C+like+Gecko%29+Version%2F6.0+Mobile%2F10A403+Safari%2F8536.25

  Ответить  
 
 автор: Balamut182   (18.12.2013 в 17:49)   письмо автору
 
   для: Владимир55   (14.11.2013 в 01:01)
 

Для чего вам эта информация? Сайты на планшетах выглядят почти также как на PC

  Ответить  
 
 автор: psychomc   (18.12.2013 в 18:43)   письмо автору
 
   для: Владимир55   (14.11.2013 в 01:01)
 

посмотрите как это делается вот тут https://github.com/serbanghita/Mobile-Detect

  Ответить  
 
 автор: Sfinks   (19.12.2013 в 08:19)   письмо автору
 
   для: psychomc   (18.12.2013 в 18:43)
 

В закладки! Это интересно.
2 девайса с почти одинаковыми юзер-агентами, оба на андроид 4, но оно абсолютно верно на первый сказало "phone", на второй "tablet".

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования