Как работает опция Chrome "запрос рабочего стола"?


для iOS google chrome, когда пользователь нажимает кнопку" запрос рабочего стола", что делает браузер, чтобы попытаться вызвать рабочий стол сайта? Я представляю себе какой-то заголовок на запрос, который ищут сайты, или что-то подобное?

4 77

4 ответа:

Я думаю, что единственная разница User-Agent: заголовок в запросе.

вот заголовки User-Agent, отправленные Chrome на моем устройстве Android:

Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76K) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.45 Safari/535.19

обратите внимание на слово "Мобильный" в первом, а также упоминание системы и устройства Android. Проверяя их, я вижу, что он также предоставляет ложную информацию, а именно X11 и x86_64, чтобы точно соответствовать значению, отправленному настольной версией Linux Chrome.

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

дано: somesite.com нюхает агент, видит Android и делает документ.расположение += "/м";

затем: браузер будет иметь URL-адрес somesite.com/m

но: если вы "запросите desktop site", он изменит User-Agent и повторно запросит от somesite.com

Если: вы пошли прямо на мобильный URL-адрес somesite.com/m во-первых, в этом случае он просто перезагружается somesite.com/m.

Я ожидал бы, что это работает с HTTP 301 и 302 перенаправления, я знаю, что это работает с документом.местоположение изменяется (по крайней мере, как описано), и будет предполагать, что он работает с обновляет.

просто хотел отметить, что Chrome теперь не только меняет User-Agent но также игнорирует исходный мета-тег viewport, если вы"запрашиваете сайт рабочего стола". Таким образом, не нужно будет нюхать User-Agent больше, и вы можете полагаться на изменение видового экрана, поскольку большинство отзывчивых сайтов будут автоматически делать это. Смотрите это изменение для дальнейшего использования.

этот фрагмент javascript будет эффективно делать то же самое :

function requestDesktopSite() {
    document.getElementsByTagName('meta')['viewport'].content='min-width: 980px;';
}
<button onclick="requestDesktopSite()">Request Desktop Site</button>