- Прогрессивные веб-приложения выходят на настольные компьютеры
- Универсальный API датчиков значительно упрощает доступ к датчикам устройства, таким как акселерометр, гироскоп и другие.
- А
BigInt
значительно упрощает работу с большими целыми числами.
И это еще не все !
Меня зовут Пит ЛеПейдж . Давайте окунемся в мир и посмотрим, что нового для разработчиков в Chrome 67!
Хотите полный список изменений? Ознакомьтесь со списком изменений в исходном репозитории Chromium .
PWA для настольных ПК
Desktop Progressive Web Apps теперь поддерживаются в ChromeOS 67, и мы уже начали работать над поддержкой Mac и Windows. После установки они запускаются так же, как и другие приложения, и работают в окне приложения , без адресной строки или вкладок. Работники служб гарантируют, что они быстрые и надежные, а опыт работы с окном приложения заставляет их чувствовать себя интегрированными. И они создают увлекательный опыт для ваших пользователей.
Начало работы ничем не отличается от того, что вы уже делаете сегодня. Вся работа, которую вы проделали для вашего существующего Progressive Web App, по-прежнему применима , вам просто нужно рассмотреть некоторые дополнительные контрольные точки .
Если ваше приложение соответствует стандартным критериям PWA , Chrome запустит событие beforeinstallprompt
, но не будет автоматически запрашивать пользователя. Вместо этого сохраните событие; затем добавьте в свое приложение какой-нибудь пользовательский интерфейс — например, кнопку установки приложения — чтобы сообщить пользователю, что ваше приложение может быть установлено. Затем, когда пользователь нажмет кнопку, вызовите prompt для сохраненного события; Chrome затем покажет пользователю запрос. Если он нажмет add, Chrome добавит ваше PWA на свою полку и в средство запуска.
Ознакомьтесь с моим докладом на Google I/O , где мы с Дженни подробно рассмотрим технические и специальные аспекты проектирования, которые необходимо учитывать при создании прогрессивного веб-приложения для настольных компьютеров.
А если вы хотите начать экспериментировать с этим на Mac или Windows — ознакомьтесь с полной публикацией Desktop Progressive Web App, чтобы узнать, как включить поддержку с помощью флага.
Универсальный API датчика
Данные датчиков используются во многих приложениях для обеспечения таких возможностей, как захватывающие игры, фитнес-трекинг и дополненная или виртуальная реальность. Теперь эти данные доступны веб-приложению с помощью API Generic Sensor .
API состоит из базового интерфейса Sensor с набором конкретных классов датчиков, построенных поверх. Наличие базового интерфейса упрощает процесс реализации и спецификации для конкретных классов датчиков. Например, класс Gyroscope очень маленький!
const sensor = new Gyroscope({frequency: 500});
sensor.start();
sensor.onreading = () => {
console.log("X-axis " + sensor.x);
console.log("Y-axis " + sensor.y);
console.log("Z-axis " + sensor.z);
};
Основная функциональность определяется базовым интерфейсом, а Gyroscope просто расширяет ее тремя атрибутами, представляющими угловую скорость. Chrome 67 поддерживает акселерометр, гироскоп, датчик ориентации и датчик движения.
Корпорация Intel подготовила несколько демонстраций API универсальных датчиков и примеров кода , а также обновила публикацию «Датчики для Интернета!» за сентябрь, добавив в нее всю необходимую информацию.
BigInt
с
BigInt
— это новый числовой примитив в JavaScript, который может представлять целые числа с произвольной точностью. Большие целые идентификаторы и высокоточные временные метки не могут быть безопасно представлены как Numbers
в JavaScript, что часто приводит к реальным ошибкам (из-за которых мы часто представляем такие числа как строки).
let max = Number.MAX_SAFE_INTEGER;
// → 9_007_199_254_740_991
max = max + 1;
// → 9_007_199_254_740_992 - Yay!
max = max + 1;
// → 9_007_199_254_740_992 - Uh, no?
С BigInt
s мы можем безопасно хранить и выполнять целочисленную арифметику без переполнения. Сегодня работа с большими целыми числами обычно означает, что нам приходится прибегать к библиотеке, которая эмулирует функциональность, подобную BigInt
.
let max = BigInt(Number.MAX_SAFE_INTEGER);
// → 9_007_199_254_740_991n
max = max + 9n;
// → 9_007_199_254_741_000n - Yay!
Когда BigInt
станет широко доступен, мы сможем отказаться от этих зависимостей времени выполнения в пользу собственных BigInts
. Собственная реализация не только быстрее, но и поможет сократить время загрузки, анализа и компиляции, поскольку нам не придется загружать эти дополнительные библиотеки.
И многое другое!
Это лишь некоторые из изменений в Chrome 67 для разработчиков, конечно, их гораздо больше.
API управления учетными данными поддерживается с Chrome 51 и предоставляет фреймворк для создания, извлечения и хранения учетных данных. Он делал это с помощью двух типов учетных данных: PasswordCredential
и FederatedCredential
. API веб-аутентификации добавляет третий тип учетных данных, PublicKeyCredential
, который позволяет браузерам аутентифицировать пользователя с помощью пары закрытый/открытый ключ, сгенерированной аутентификатором, таким как ключ безопасности, считыватель отпечатков пальцев или любое другое устройство, которое может аутентифицировать пользователя. Chrome 67 включает API с использованием аутентификаторов U2F/CTAP 1 через USB-транспорт на настольном компьютере.
Подробнее об этом читайте в статье Эйдзи «Включение строгой аутентификации с помощью WebAuthn» .
Google I/O — это завершение
Если вы не были на I/O или были, но не видели всех веб-докладов, посмотрите плейлист Chrome и Web, чтобы быть в курсе всех последних новостей с Google I/O!
Новое в DevTools
Обязательно ознакомьтесь с разделом Новое в Chrome DevTools , чтобы узнать, что нового в DevTools в Chrome 67.
Подписаться
Затем нажмите кнопку «Подписаться» на нашем канале YouTube , и вы будете получать уведомления по электронной почте каждый раз, когда мы выпускаем новое видео.
Меня зовут Пит ЛеПейдж, и как только выйдет Chrome 68, я сразу же расскажу вам, что нового в Chrome!