В Chrome 76 мы добавили поддержку:
- медиа-запрос
prefers-color-scheme
, позволяющий использовать темный режим на веб-сайтах. - Кнопка установки в омнибоксе для упрощения установки Progressive Web Apps на настольный компьютер.
- Предотвращение появления мини-информационной панели в прогрессивных веб-приложениях на мобильных устройствах.
- Более частые обновления WebAPK .
- И многое другое .
Меня зовут Пит ЛеПейдж . Давайте углубимся в детали и посмотрим, что нового появилось в Chrome 76 для разработчиков!
Кнопка установки PWA Omnibox
В Chrome 76 мы упрощаем для пользователей установку прогрессивных веб-приложений на рабочий стол, добавляя кнопку установки в адресную строку, иногда называемую омнибоксом.
Если ваш сайт соответствует критериям установки Progressive Web App , Chrome отобразит кнопку установки в омнибоксе, сообщая пользователю, что ваш PWA может быть установлен. Если пользователь нажимает кнопку установки, это по сути то же самое, что и вызов prompt()
для события beforeinstallprompt
; он отображает диалоговое окно установки, что упрощает установку вашего PWA для пользователя.
Подробную информацию см. в разделе Установка адресной строки для прогрессивных веб-приложений на рабочем столе .
Больше контроля над мини-информационной панелью PWA

На мобильных устройствах Chrome показывает мини-информационную панель при первом посещении пользователем вашего сайта, если он соответствует критериям установки Progressive Web App . Мы слышали от вас, что вы хотите иметь возможность предотвратить появление мини-информационной панели и вместо этого предоставить собственную рекламную установку.
Начиная с Chrome 76, вызов preventDefault()
для события beforeinstallprompt
остановит появление мини-информационной панели.
window.addEventListener('beforeinstallprompt', (e) => {
// Don't show mini-infobar
e.preventDefault();
// Stash the event so it can be triggered later.
deferredPrompt = e;
// Update UI to promote PWA installation
pwaInstallAvailable(true);
});
Обязательно обновите свой пользовательский интерфейс, чтобы пользователи знали, что ваш PWA может быть установлен. Ознакомьтесь с Шаблонами для продвижения установки PWA, чтобы ознакомиться с нашими рекомендациями по продвижению установки ваших прогрессивных веб-приложений.
Более быстрые обновления WebAPK
Когда Progressive Web App устанавливается на Android, Chrome автоматически запрашивает и устанавливает Web APK . После установки Chrome периодически проверяет, изменился ли манифест веб-приложения, возможно, вы обновили значки, цвета или изменили имя приложения, чтобы узнать, требуется ли новый WebAPK.
Начиная с Chrome 76, Chrome будет проверять манифест чаще; каждый день, а не каждые три дня. Если какие-либо из ключевых свойств изменились, Chrome запросит и установит новый WebAPK, гарантируя актуальность заголовка, значков и других свойств.
Подробную информацию см. в разделе Более частое обновление WebAPK .
Темный режим
Многие операционные системы теперь поддерживают темный режим или темную тему.
Медиа-запрос prefers-color-scheme
позволяет вам настроить внешний вид вашего сайта в соответствии с предпочтительным режимом пользователя.
@media (prefers-color-scheme: dark) {
body {
background-color: black;
color: white;
}
}
У Тома есть замечательная статья «Привет, тьма, мой старый друг» на web.dev, в которой есть все, что вам нужно знать, а также советы по архитектуре таблиц стилей для поддержки как светлого, так и темного режима.
И многое другое!
Это лишь некоторые из изменений в Chrome 76 для разработчиков, конечно, их гораздо больше.
Promise.allSettled()
Лично я в восторге от Promise.allSettled()
. Он похож на Promise.all()
, за исключением того, что он ждет, пока все обещания не будут выполнены, прежде чем возвращать значение.
const promises = [
fetch('/api-call-1'),
fetch('/api-call-2'),
fetch('/api-call-3'),
];
// Imagine some of these requests fail, and some succeed.
await Promise.allSettled(promises);
// All API calls have finished (either failed or succeeded).
Читать капли стало проще
Blob
-объекты стало проще читать благодаря трем новым методам: text()
, arrayBuffer()
и stream()
; это значит, что нам больше не нужно создавать оболочку вокруг средства чтения файлов!
// New easier way
const text = await blob.text();
const aBuff = await blob.arrayBuffer();
const stream = await blob.stream();
// Old, wrapped reader
return new Promise((resolve) => {
const reader = new FileReader();
reader.addEventListener('loadend', (e) => {
const text = e.srcElement.result;
resolve(text);
});
reader.readAsText(file);
});
Поддержка изображений в API асинхронного буфера обмена
Кроме того, мы добавили поддержку изображений в API асинхронного буфера обмена , что упрощает программное копирование и вставку изображений.
Дальнейшее чтение
Здесь рассмотрены лишь некоторые из основных моментов. Дополнительные изменения в Chrome 76 можно найти по ссылкам ниже.
- Что нового в Chrome DevTools (76)
- Устаревание и удаление Chrome 76
- Обновления ChromeStatus.com для Chrome 76
- Что нового в JavaScript в Chrome 76
- Список изменений в исходном репозитории Chromium
Подписаться
Хотите быть в курсе наших видео? Подпишитесь на наш канал Chrome Developers на YouTube , и вы будете получать уведомления по электронной почте каждый раз, когда мы выпускаем новое видео.
Меня зовут Пит ЛеПейдж, и как только выйдет Chrome 77, я сразу же расскажу вам, что нового в Chrome!