- Прогрессивные веб-приложения выходят на настольные компьютеры
- Общий API датчиков упрощает доступ к датчикам устройства, таким как акселерометр, гироскоп и т. д.
- А
BigInt
значительно упрощает работу с большими целыми числами.
И есть еще много всего !
Я Пит ЛеПейдж . Давайте углубимся и посмотрим, что нового для разработчиков в Chrome 67!
Хотите полный список изменений? Ознакомьтесь со списком изменений репозитория исходного кода Chromium .
Настольные PWA
Прогрессивные веб-приложения для настольных компьютеров теперь поддерживаются в 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!