Новое в Chrome 67

  • Прогрессивные веб-приложения выходят на настольные компьютеры
  • Общий API датчиков упрощает доступ к датчикам устройства, таким как акселерометр, гироскоп и т. д.
  • А BigInt значительно упрощает работу с большими целыми числами.

И есть еще много всего !

Я Пит ЛеПейдж . Давайте углубимся и посмотрим, что нового для разработчиков в Chrome 67!

Хотите полный список изменений? Ознакомьтесь со списком изменений репозитория исходного кода Chromium .

Настольные PWA

Настольное прогрессивное веб-приложение Spotify

Прогрессивные веб-приложения для настольных компьютеров теперь поддерживаются в ChromeOS 67, и мы уже начали работать над поддержкой Mac и Windows. После установки они запускаются так же, как и другие приложения, и работают в окне приложения без адресной строки и вкладок. Сервисные работники гарантируют, что они работают быстро и надежно, а работа с окном приложения позволяет им чувствовать себя интегрированными. И они создают привлекательный опыт для ваших пользователей.

Начало работы ничем не отличается от того, что вы уже делаете сегодня. Вся работа, которую вы проделали для существующего Progressive Web App, по-прежнему применима , вам просто нужно рассмотреть некоторые дополнительные точки останова .

Если ваше приложение соответствует стандартным критериям PWA , Chrome создаст событие beforeinstallprompt , но не будет автоматически запрашивать это у пользователя. Вместо этого сохраните событие; затем добавьте в свое приложение некоторый пользовательский интерфейс, например кнопку установки приложения, чтобы сообщить пользователю, что ваше приложение можно установить. Затем, когда пользователь нажимает кнопку, вызывается подсказка о сохраненном событии; Затем Chrome покажет пользователю подсказку. Если они нажмут кнопку «Добавить», Chrome добавит ваш PWA на свою полку и в панель запуска.

Посмотрите мой доклад о Google I/O , где мы с Дженни подробно рассказываем о технических и особых аспектах дизайна, которые необходимо учитывать при создании прогрессивного веб-приложения для настольных компьютеров.

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

Общий API датчика

Данные датчиков используются во многих приложениях для обеспечения таких возможностей, как захватывающие игры, отслеживание фитнеса, а также дополненная или виртуальная реальность. Эти данные теперь доступны веб-приложению с помощью API Generic Sensor .

API состоит из базового интерфейса датчика с набором конкретных классов датчиков, построенных поверх него. Наличие базового интерфейса упрощает процесс реализации и спецификации конкретных классов датчиков. Например, класс гироскопа очень маленький!

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);
};

Основная функциональность определяется базовым интерфейсом, а Gyrscope просто расширяет его тремя атрибутами, представляющими угловую скорость. Chrome 67 поддерживает акселерометр, гироскоп, датчик ориентации и датчик движения.

Корпорация Intel собрала несколько демонстраций универсального API датчиков и пример кода , а также обновила модуль Sensors for the Web! пост за сентябрь со всем, что вам нужно знать.

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 мы можем безопасно хранить и выполнять целочисленные арифметические операции без переполнения. Сегодня работа с большими целыми числами обычно означает, что нам приходится прибегать к библиотеке, которая эмулирует функциональность, подобную 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!