Tryb aplikacji z kartami dla PWA

Praca nad kilkoma dokumentami naraz za pomocą kart w progresywnej aplikacji internetowej

W świecie komputerów metafora na komputery jest zbiorem ujednoliconych koncepcji stosowanych w graficznych interfejsach użytkownika (GUI) mających ułatwić użytkownikom interakcję z komputerem. Zgodnie z metaforą typową na komputerach karty graficzne są wzorowane na standardowych kartach kart umieszczanych w książkach, na papierze czy w indeksach. Karta lub interfejs dokumentu z kartami to graficzny element sterujący, który umożliwia umieszczanie wielu dokumentów lub paneli w jednym oknie. W tym celu karty pełnią funkcję widżetu nawigacyjnego, który umożliwia przełączanie się między zestawami dokumentów.

Progresywne aplikacje internetowe mogą działać w różnych trybach wyświetlania określonych przez właściwość display w pliku manifestu aplikacji internetowej. Przykłady: fullscreen, standalone, minimal-ui i browser. Te tryby wyświetlania działają po dobrze zdefiniowanej łańcuchu kreacji zastępczych ("fullscreen""standalone""minimal-ui""browser"). Jeśli przeglądarka nie obsługuje danego trybu, wraca do następnego trybu wyświetlania w łańcuchu. Za pomocą właściwości "display_override" deweloperzy mogą w razie potrzeby określić własny łańcuch kreacji zastępczych.

Czym jest tryb aplikacji z kartami

Jedną z funkcji, której zabrakło do tej pory na platformie, jest możliwość oferowania użytkownikom interfejsu dokumentu z kartami, na przykład do edytowania różnych plików w tym samym oknie PWA. Tryb aplikacji z kartami wypełnia tę lukę.

Sugerowane przypadki użycia trybu aplikacji z kartami

Przykłady witryn, które mogą korzystać z trybu aplikacji z kartami:

  • Aplikacje zwiększające produktywność, które umożliwiają użytkownikowi edytowanie kilku dokumentów (lub plików) jednocześnie.
  • aplikacje do komunikacji, które umożliwiają użytkownikowi prowadzenie rozmów w różnych pokojach na każdej karcie;
  • czytanie aplikacji, które otwierają linki do artykułów na nowych kartach w aplikacji;

Różnice w stosunku do kart utworzonych przez programistów

Przechowywanie dokumentów na osobnych kartach przeglądarki wiąże się z bezpłatną izolacją zasobów, co obecnie nie jest możliwe w internecie. Karty utworzone przez dewelopera nie skalowałyby się do setek kart, tak jak w przypadku kart przeglądarki. Opcje przeglądarki takie jak historia nawigacji, „Kopiuj adres URL strony”, „Prześlij tę kartę” czy „Otwórz tę stronę w przeglądarce” są stosowane do strony interfejsu z kartami, ale nie do aktualnie wybranej strony dokumentu.

Różnice w stosunku do: "display": "browser"

Obecny "display": "browser" ma już konkretne znaczenie:

Otwiera aplikację internetową przy użyciu odpowiedniej dla platformy konwencji otwierania hiperlinków w kliencie użytkownika (np. na karcie przeglądarki lub w nowym oknie).

Przeglądarki mogą wykonywać w interfejsie dowolne czynności, ale wprowadzenie "display": "browser" nagle oznaczałoby „działanie w osobnym oknie aplikacji bez zaawansowanych możliwości przeglądarki, tylko z interfejsem dokumentu z kartami”.

Ustawienie "display": "browser" to w praktyce sposób rezygnacji z umieszczania jej w oknie aplikacji.

Obecny stan,

Step Stan
1. Utwórz wyjaśnienie Ukończono
2. Utwórz wstępną wersję roboczą specyfikacji Nie rozpoczęto
3. Zbieranie opinii i ulepszanie projektu W toku
4. Testowanie origin W toku
5. Wprowadzenie na rynek Nie rozpoczęto

Korzystanie z trybu aplikacji z kartami

Aby używać trybu aplikacji z kartami, deweloperzy muszą włączyć tę funkcję w swoich aplikacjach, ustawiając konkretną wartość trybu "display_override" w manifeście aplikacji internetowej.

{
  "display": "standalone",
  "display_override": ["tabbed"]
}

Następnie możesz użyć właściwości "tab_strip", aby dostosować działanie karty. Zawiera 2 dozwolone usługi podrzędne: "home_tab" i "new_tab_button". Jeśli właściwość "tab_strip" nie jest dostępna, używane są wartości "auto" określonej właściwości. To przeglądarka określa, których wartości użyje "auto".

Karta Główna

Karta Strona główna to przypięta karta, która po włączeniu jej w aplikacji powinna być zawsze widoczna, gdy jest otwarta. Ta karta nie powinna nigdy się pojawiać. Linki klikane na tej karcie powinny otwierać się w nowej karcie aplikacji. Aplikacje mogą dostosować adres URL, pod którym ta karta jest zablokowana, oraz ikonę wyświetlaną na karcie.

Dozwolone wartości "home_tab":

  • "auto", aby przeglądarka mogła określić, co ma zrobić.
  • "absent", aby wyłączyć wyświetlanie karty strony głównej w przeglądarce.
  • Obiekt o 2 właściwościach podrzędnych:
    • "url" z dozwolonymi wartościami "auto" lub adresem URL, pod którym ma zostać zablokowana karta główna.
    • "icons" z dozwolonymi wartościami "auto" lub tablicą ikon, jak w głównej właściwości "icons".

Przycisk Nowa karta

Przycisk nowej karty (jeśli jest dostępny) powinien otwierać nową kartę z adresem URL należącym do zakresu aplikacji. Aplikacja może ustawić niestandardowy adres URL i ikonę tego przycisku. Przeglądarki mogą decydować, jak obsłużyć te karty, aby utworzyć nowe okna lub połączyć je z kartami przeglądarki.

Dozwolone wartości "new_tab_button":

  • "auto", aby przeglądarka mogła określić, co ma zrobić.
  • "absent", aby informować przeglądarkę, że ma nie pokazywać przycisku nowej karty.
  • Obiekt o 2 właściwościach podrzędnych:
    • "url" z dozwolonymi wartościami "auto" lub adresem URL uwzględnionym w zakresie umożliwiającym otwieranie nowych kart.
    • "icons" z dozwolonymi wartościami "auto" lub tablicą ikon, jak w głównej właściwości "icons".

Pełny przykład

Pełny przykład konfiguracji działania aplikacji z interfejsem z kartami może wyglądać tak:

{
  "display_override": ["tabbed"],
  "tab_strip": {
    "home_tab": {
      "url": "./home/",
      "icons": [
        {
          "src": "./home.svg",
          "sizes": "any",
          "type": "image/svg+xml"
        }
      ]
    },
    "new_tab_button": {
      "url": "./new-tab/",
      "icons": [
        {
          "src": "./new-tab.svg",
          "sizes": "any",
          "type": "image/svg+xml"
        }
      ]
    }
  }
}

Wykrywanie trybu aplikacji z kartami

Aplikacje mogą wykryć, czy działają w trybie aplikacji z kartami, za pomocą funkcji mediów CSS display-mode w CSS lub JavaScript:

@media (display-mode: tabbed) {
  /* Styles to apply in tabbed application mode. */
}
const tabbedApplicationModeEnabled = window.matchMedia('(display-mode: tabbed)').matches;

Interakcja z interfejsem Launch Handler API

Interfejs Launch Handler API umożliwia witrynom przekierowywanie uruchamiania aplikacji do istniejących okien aplikacji, aby zapobiec otwieraniu zduplikowanych okien. Gdy aplikacja z kartami ustawi "client_mode": "navigate-new", uruchomienie aplikacji spowoduje otwarcie nowej karty w istniejącym oknie aplikacji.

Pokaz

Aby wypróbować tryb aplikacji z kartami, ustaw flagę przeglądarki:

  1. Ustaw flagę #enable-desktop-pwas-tab-strip.
  2. Zainstaluj aplikację tabbed-application-mode.glitch.me (kod źródłowy).
  3. Klikaj różne linki na poszczególnych kartach.

Zrzut ekranu pokazujący tryb aplikacji z kartami dostępny w pliku tabbed-application-mode.glitch.me.

Prześlij opinię

Zespół Chrome chce poznać Twoją opinię o korzystaniu z trybu aplikacji z kartami.

Opowiedz nam o projekcie interfejsu API

Czy w trybie aplikacji z kartami jest coś, co nie działa zgodnie z oczekiwaniami? Opisz utworzony przez nas problem z plikiem manifestu aplikacji internetowej.

Zgłoś problem z implementacją

Czy wystąpił błąd związany z implementacją przeglądarki Chrome? Zgłoś błąd na stronie new.crbug.com. Podaj jak najwięcej szczegółów, proste instrukcje dotyczące odtworzenia i wpisz UI>Browser>WebAppInstalls w polu Komponenty. Usterki to świetny sposób na szybkie i łatwe udostępnianie przypadków odtworzenia.

Pokaż obsługę interfejsu API

Czy zamierzasz użyć trybu aplikacji z kartami? Twoje publiczne wsparcie pomaga zespołowi Chrome priorytetowo traktować funkcje i pokazuje innym dostawcom przeglądarek, jak ważne jest ich wsparcie.

Wyślij tweeta na adres @ChromiumDev, używając hashtagu #TabbedApplicationMode, i daj nam znać, gdzie i w jaki sposób go używasz.

Podziękowania

Tryb aplikacji z kartami badał Matt Giuca. Eksperymentalną implementację w Chrome opracował Alan Cutter. Ten artykuł został sprawdzony przez Joe Medley. Baner powitalny autorstwa Tilla Niermanna dostępny na stronie Wikimedia Commons.