Nowości w Chrome 67

  • Progresywne aplikacje internetowe na komputer
  • Interfejs API ogólnego czujnika znacznie ułatwia uzyskiwanie dostępu do czujników urządzenia, takich jak akcelerometr czy żyroskop.
  • BigInt ułatwia obsługę dużych liczb całkowitych.

A to nie wszystko – to tylko część.

Mam na imię Pete LePage. Zobaczmy, co nowego w Chrome 67 dla deweloperów.

Chcesz zobaczyć pełną listę zmian? Sprawdź listę zmian w repozytorium źródłowym Chromium.

PWA na komputery

progresywną aplikację internetową Spotify na komputer

Progresywne aplikacje internetowe na komputery są teraz obsługiwane w ChromeOS 67. Rozpoczęliśmy już prace nad obsługą systemów Mac i Windows. Po zainstalowaniu są one uruchamiane tak samo jak inne aplikacje i działają w oknie aplikacji, bez paska adresu ani kart. Dzięki nim są one szybkie i niezawodne, a okno aplikacji sprawia, że czują się w nich jak w domu. Zapewniają też użytkownikom atrakcyjne wrażenia.

Rozpoczęcie korzystania z tej funkcji nie różni się niczym od tego, co robisz już teraz. Wszystkie zmiany wprowadzone w Twojej dotychczasowej progresywnej aplikacji internetowej nadal będą obowiązywać. Musisz tylko wziąć pod uwagę kilka dodatkowych punktów przerwania.

Jeśli Twoja aplikacja spełnia standardowe kryteria dotyczące aplikacji internetowych, Chrome wywoła zdarzenie beforeinstallprompt, ale nie wyświetli automatycznie prompta. Zamiast tego zapisz zdarzenie, a potem dodaj do aplikacji element interfejsu użytkownika, np. przycisk instalowania aplikacji, aby poinformować użytkownika, że może ją zainstalować. Gdy użytkownik kliknie przycisk, Chrome wyświetli prompt połączenia na podstawie zapisanego zdarzenia. Jeśli klikną „Dodaj”, Chrome doda PWA do półki i launchera.

Obejrzyj moją prezentację z Google I/O, w której omawiamy z Jenny szczegółowe kwestie techniczne i specjalne aspekty projektowania, o których warto pamiętać podczas tworzenia progresywnej aplikacji internetowej na komputery.

Jeśli chcesz zacząć korzystać z tej funkcji na Macu lub Windowsie, przeczytaj post na temat progresywnych aplikacji internetowych na komputer, aby dowiedzieć się, jak włączyć obsługę za pomocą flagi.

Interfejs Generic Sensor API

Dane z czujników są używane w wielu aplikacjach, aby umożliwić korzystanie z takich funkcji jak gry z użyciem rzeczywistości rozszerzonej, monitorowanie aktywności czy rzeczywistość rozszerzona lub wirtualna. Te dane są teraz dostępne dla aplikacji internetowej korzystającej z interfejsu Generic Sensor API.

Interfejs API składa się z podstawowego interfejsu Sensor z zestawem konkretnych klas czujników utworzonych na jego podstawie. Podstawowy interfejs upraszcza proces implementacji i specyfikacji konkretnych klas czujników. Na przykład klasa żyroskopu jest bardzo mała.

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

Podstawowe funkcje są określone w interfejsie podstawowym, a Gyroscope rozszerza je tylko o 3 atrybuty reprezentujące prędkość kątową. Chrome 67 obsługuje akcelerometr, żyroskop, czujnik orientacji i czujnik ruchu.

Firma Intel przygotowała kilka demonstracji interfejsu generic sensors API oraz przykładowy kod. Zaktualizowała też swój wpis z października Sensors for the Web!, w którym znajdziesz wszystkie potrzebne informacje.

BigInt s

BigInt to nowy typ liczbowy w JavaScript, który może reprezentować liczby całkowite z dowolną precyzją. Duże identyfikatory całkowite i znaki czasu o wysokiej dokładności nie mogą być bezpiecznie reprezentowane jako Numbers w JavaScript, co często prowadzi do błędów w praktyce (z tego powodu często reprezentujemy takie liczby jako ciągi znaków).

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?

Dzięki BigInt możemy bezpiecznie przechowywać i wykonywać arytmetykę całkowitą bez przepełnienia. Obecnie, obsługa dużych liczb całkowitych zwykle wymaga korzystania z biblioteki, która emuluje funkcję podobną do BigInt.

let max = BigInt(Number.MAX_SAFE_INTEGER);
// → 9_007_199_254_740_991n
max = max + 9n;
// → 9_007_199_254_741_000n - Yay!

Gdy BigInt stanie się powszechnie dostępna, będziemy mogli zrezygnować z tych zależności w czasie wykonywania na rzecz natywnej BigInts. Natywne wdrożenie jest nie tylko szybsze, ale też pomaga skrócić czas wczytywania, analizowania i kompilowania, ponieważ nie trzeba wczytywać dodatkowych bibliotek.

I inne funkcje

To tylko kilka z wielu zmian w Chrome 67 dla deweloperów.

Interfejs Credential Management API jest obsługiwany od wersji 51 przeglądarki Chrome i zawiera ramy do tworzenia, pobierania i przechowywania danych logowania. Wykorzystał on 2 rodzaje danych logowania: PasswordCredentialFederatedCredential. Web Authentication API dodaje trzeci typ danych logowania, PublicKeyCredential, który umożliwia przeglądarkom uwierzytelnianie użytkownika za pomocą pary kluczy prywatnych/publicznych wygenerowanych przez uwierzytelniacz, np. klucz bezpieczeństwa, czytnik linii papilarnych lub inne urządzenie, które może uwierzytelnić użytkownika. Chrome 67 umożliwia interfejs API za pomocą uwierzytelniania U2F/CTAP 1 przez interfejs USB na komputerze.

Więcej informacji na ten temat znajdziesz w artykule Enabling Strong Authentication with WebAuthn autorstwa Eiji.

Podsumowanie konferencji Google I/O

Jeśli nie udało Ci się wziąć udziału w konferencji I/O lub nie udało Ci się obejrzeć wszystkich wykładów, zajrzyj do playlisty Chrome i internetu, aby dowiedzieć się wszystkiego, co wydarzyło się na Google I/O.

Nowości w Narzędziach deweloperskich

Zapoznaj się z artykułem Nowości w Narzędziach deweloperskich w Chrome, aby dowiedzieć się, co nowego w wersji 67.

Subskrybuj

Następnie kliknij przycisk Subskrybuj na naszym kanale w YouTube. Otrzymasz e-maila z powiadomieniem za każdym razem, gdy opublikujemy nowy film.

Nazywam się Pete LePage i zaraz po wydaniu Chrome 68 opowiem Ci o nowościach w tej przeglądarce.