Попытка эмулировать мобильный девайс андроид в зенно для FB

progr

Пользователь
Регистрация
28.08.2014
Сообщения
77
Благодарностей
6
Баллы
8
Пытаюсь эмулировать мобильный андроид-девайс

Подменяю параметры браузера фингером:

User-Agent
mozilla/5.0 (linux; android 4.4.2; de-ch; samsung gt-i9505 build/kot49h) applewebkit/537.36 (khtml, like gecko) version/1.5 chrome/28.0.1500.94 mobile safari/537.36

Accept
*/*
Accept-Encoding
gzip, deflate

Accept-Language
de-ch,de;q=0.8,en-us;q=0.6,en;q=0.4

параметры полученные яваскриптом:
{"window.screen":{"colorDepth":32,"pixelDepth":32,"height":640,"width":360,"availHeight":640,"availWidth":360,"availTop":0,"availLeft":0},"window.navigator":{"userAgent":"Mozilla/5.0 (Linux; Android 4.4.2; de-ch; SAMSUNG GT-I9505 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Mobile Safari/537.36","appCodeName":"Mozilla","appName":"Netscape","appVersion":"5.0 (Linux; Android 4.4.2; de-ch; SAMSUNG GT-I9505 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/1.5 Chrome/28.0.1500.94 Mobile Safari/537.36","language":"de","platform":"Linux armv7l","vendor":"Google Inc.","vendorSub":"","product":"Gecko","productSub":"20030107","onLine":true,"oscpu":"undefined","plugins":{"length":0},"mimeTypes":{"length":0}},"window.af":{"timezone":-60}}


все эти параметры подставляются сответственно в нужные переменные

instance.SetHeader("HTTP_USER_AGENT",value);
instance.SetHeader("HTTP_ACCEPT_LANGUAGE",value);
....
instance.SetScreenPreference("screen_pixel_depth",Convert.ToInt32(fpo.GetValue("window.screen").SelectToken("colorDepth").ToString()));
instance.SetScreenPreference("screen_height",Convert.ToInt32(fpo.GetValue("window.screen").SelectToken("height").ToString()));
.....


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

Вот скрин того что отображается в дебагере зенки:
11.png



Может кто подскажет, есть ли какие то секреты, что бы корректно отображать страницу именно для мобильного девайса. Потому как нужно эмулировать именно мобильный девайс, и все действия проводить с ним. Вариант подсунуть хедеры виндового браузера не подходит.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
у меня кстати у самого стремный телефон на андроиде неизвестной марки. фейсбук выглядит именно так. только картинку в header загружает. а текст вот так же расползается.
 

progr

Пользователь
Регистрация
28.08.2014
Сообщения
77
Благодарностей
6
Баллы
8
Дело в том что это же не телефон у меня показывает такую картинку, а встроенный в зенку браузер. Думал может где то что то я не так делаю.
Есть какие то идеи?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
я просто сказал что у меня мой андройд так же почти отображает facebook))
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
GET https://m.facebook.com/ HTTP/1.1
Host: m.facebook.com
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Linux; Android 4.2.2; GT-I9505 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36
Accept-Encoding: gzip,deflate
Accept-Language: ru,en-US;q=0.8,en;q=0.6
это все что отображает эмулятор телефона в хроме. Вобще откуда у вас та инфа по поводу всяких там характеристик? Мне кажется ни один браузер в телефоне не посылает такие данные...
 

progr

Пользователь
Регистрация
28.08.2014
Сообщения
77
Благодарностей
6
Баллы
8
to LexxWork
Инфа которая описана в первом посте собирается частично из хедеров которые посылает мобильный клиент а затем частично яваскриптом достается инфа по разрешению экрана и прочая (та что в json)
Но суть даже не в этом. Достаточно отправить информацию о юзер агенте
User-Agent
mozilla/5.0 (linux; android 4.4.2; de-ch; samsung gt-i9505 build/kot49h) applewebkit/537.36 (khtml, like gecko) version/1.5 chrome/28.0.1500.94 mobile safari/537.36
и в ответ приходит мобильная версия
проблема именно в том что этот ответ в зенке отображается именно так как показано на скрине.
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
только что проверил
instance.SetHeader("HTTP_USER_AGENT", "Opera/12.02 (Android 4.1; Linux; Opera Mobi/ADR-1111101157; U; en-US) Presto/2.9.201 Version/12.02");

fiddler
GET https://m.facebook.com/ HTTP/1.1
Host: m.facebook.com
User-Agent: Opera/12.02 (Android 4.1; Linux; Opera Mobi/ADR-1111101157; U; en-US) Presto/2.9.201 Version/12.02
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
 
  • Спасибо
Реакции: Dexio

progr

Пользователь
Регистрация
28.08.2014
Сообщения
77
Благодарностей
6
Баллы
8
to LexxWork

Спасибо, помогло. Почему сам не допер попробовать разные браузеры в качестве узер-аегнт - не пойму.
Век живи, век учись )
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)