Перейти к содержимому

Академия

Что видит приложение и не видит страница

Приложение на аппарате читает систему, в которой стоит, а страница читает только браузер, в котором открыта. Телефонный профиль отвечает на всё, о чём вправе спросить страница, и ни на что из остального.

Урок 11 из 14

Два читателя одного аккаунта

Один и тот же аккаунт читают из двух мест. Одно это приложение самой площадки на аппарате, другое страница в браузере.

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

О чём вправе спросить страница

Страница читает то, что браузер ей открывает: подпись браузера, подсказки клиента, экран, плотность точек, строку видеокарты, ядра, память, указатель.

Всё это приходит ответами на вопросы. Любой такой ответ профиль может получить заранее, до первой строки страничного кода.

  • Подпись и подсказки клиента

    Сокращённая форма Android, какую и отдаёт современный Chrome, а модель аппарата живёт в подсказках.

  • Экран и плотность точек

    Значения одного настоящего аппарата, а не экран, выбранный отдельно от него.

  • Строка видеокарты

    Производитель и отрисовщик в том виде, в каком их называет Android.

  • Касания и указатель

    Столько касаний, сколько сообщает телефон, грубый указатель и отсутствие наведения.

  • Числа связи

    Задержка и скорость в телефонном размахе, а не в ноутбучном.

На что отвечает только система

Установленное приложение живёт внутри системы и вправе спросить её о том, чего странице не дают вовсе. Эту часть браузер с другой стороны стекла не достаёт.

У телефонного профиля ответа на такие вопросы нет, и он его не выдумывает. Выдуманный ответ сам становится приметой.

Что читаютСтраница в браузереПриложение на аппарате
Телефонная вёрстка и телефонные подсказкиДаДа
Опознаватель аппарата, выданный системойНетДа
Датчики аппаратаНетДа
Список установленных приложенийНетДа
Код, пришедший сообщениемНетДа
Камера и микрофон аппаратаНетДа

Что отдаёт телефонный профиль

Телефонный профиль это обычный профиль, у которого шаблон отпечатка телефонный. Аппарат приходит целиком, поэтому экран, плотность точек, видеокарта, ядра, память и фирменные шрифты принадлежат одной модели.

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

Шаблон достаётся не любому профилю. Профиль, созданный на старом генераторе, телефона не знает, и программа отказывает, а не отдаёт молча другую машину.

Окно не бывает шире экрана

Настольное окно само не сужается до телефонного экрана, поэтому его приводят к размеру аппарата по протоколу отладки. Окно шире экрана, который профиль объявляет, это устройство, которого нет нигде.

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

Отсутствующие шрифты телефона

У аппарата есть свои шрифты, и на этом компьютере их нет. Сайт, который меряет шрифты отрисовкой, это видит.

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

Числа связи у телефона

Сведения о связи площадки читают одними из первых. Телефон, у которого числа связи как у ноутбука, это окружение, спорящее само с собой.

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

Аккаунт с телефонной историей

У аккаунта, который живёт на аппарате, за спиной история аппарата. Открытие его в браузере добавляет к этой истории ещё одно устройство, что бы ни прочитала страница.

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

Где проходит граница

Если проверка читает значение, телефонный профиль отвечает как телефон. Если проверке нужно, чтобы сработал сам аппарат, снял кадр, почувствовал наклон, принял сообщение, то срабатывать под профилем нечему.

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

Чего этот урок не утверждает

  • Он не утверждает, что телефонный профиль это телефон. Под ним нет ни модема, ни SIM-карты, ни датчиков, ни магазина приложений.
  • Он не описывает приложение ARMANOS для аппаратов, потому что такого нет. Телефонное направление это шаблон отпечатка внутри настольной программы.
  • Он не переносит сессию из приложения площадки. Вход, сделанный в браузере, остаётся входом из браузера, и аккаунт видит его именно таким.
  • Поля связи, которые бывают только на Android, достаются телефонному профилю лишь на сборке, умеющей подменить их значения. Сборка постарее их не получает.
  • Он не решает, как площадка обойдётся с телефонным профилем. Эти правила принадлежат площадке и меняются.

Где это можно увидеть самому

Каждое утверждение отсюда лежит в файле, который можно открыть, или в стенде, который можно прогнать.

Телефонный шаблон несёт аппарат целиком, поэтому экран, плотность точек, видеокарта, ядра, память и шрифты едут вместе
packages/shared/src/index.js · apps/desktop/test/mobile-really-mobile.js
Окно приводится к размеру аппарата вместе с касаниями, грубым указателем и ориентацией
apps/desktop/src/lib/mobileEmulation.js · apps/desktop/src/lib/mobileWindow.js
Оговорка про отсутствующие шрифты телефона стоит под выбором шаблона, и самопроверка говорит о том же со страницы
apps/desktop/src/i18n/messages.js · apps/desktop/src/lib/fpAudit.js
Поля связи Android достаются телефонному профилю и только сборке, которая умеет подменить их значения
apps/desktop/src/lib/forkEngine.js · apps/desktop/test/поля-связи-телефона.js

Вопросы

Запустится ли внутри приложение площадки?
Нет. Всё, что ставится из магазина приложений, живёт вне браузера, а профиль это браузер.
Придёт ли в профиль код из сообщения?
Нет. Сообщение идёт на аппарат и на номер, а у браузерного профиля нет ни того, ни другого.
Телефонный профиль лучше настольного?
Он не лучше, он другой. Он уместен там, где сайт сам ведёт себя с телефоном иначе.
Планшетный шаблон считается телефоном?
Нет. Chrome на планшете Android не называет себя мобильным, и планшетный шаблон отвечает так же.
Можно ли увидеть, что отдали странице?
Да. Самопроверка профиля читает значения обратно со страницы, и у телефонного профиля добавляются строки про касания, ориентацию и размер окна.

Посмотрите, чем отвечает телефонный профиль

На странице телефонных профилей перечислено, что шаблон заполняет и чего он не касается.