Tryb aplikacji z kartami dla PWA

Praca nad wieloma dokumentami jednocześnie dzięki kartom w progresywnej aplikacji internetowej

W świecie komputerów metafora na komputery to metafora interfejsu będąca zbiorem koncepcji łączących koncepcje używane przez graficzne interfejsy użytkownika (GUI) do ułatwiają użytkownikom interakcję z komputerem. Podobnie jak w przypadku metafory komputerowej, karty GUI są wzorowane na tradycyjnych kartach wstawionych do książek, papierowych plików lub indeksów kart. Z kartami interfejsu dokumentu (TDI) lub karty to graficzny element sterujący, który umożliwia obsługę wielu dokumentów lub w jednym oknie, korzystając z kart jako widżetu nawigacyjnego przy przełączaniu się między zestawami dokumentów.

Progresywne aplikacje internetowe mogą działać w różnych trybach wyświetlania określonych właściwość display w manifeście aplikacji internetowej. Przykłady: fullscreen, standalone, minimal-ui, i browser. Te tryby wyświetlania są zgodne z dobrze zdefiniowany łańcuch kreacji zastępczych ("fullscreen""standalone""minimal-ui""browser"). Jeśli przeglądarka nie obsługuje w danym trybie przechodzi do następnego trybu wyświetlania w łańcuchu. Za pomocą "display_override", deweloperzy mogą określić własny łańcuch kreacji zastępczych. w razie potrzeby.

Co to jest tryb aplikacji z kartami

Rozwiązanie, którego do tej pory brakowało na platformie, umożliwia programistom PWA dla użytkowników interfejsu dokumentu z kartami, na przykład w celu umożliwienia edytowania różnych plików w tej samej aplikacji PWA. okno. Tryb aplikacji z kartami wypełnia tę lukę.

Sugerowane przypadki użycia trybu aplikacji z kartami

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

  • Aplikacje zwiększające produktywność, które umożliwiają użytkownikowi edytowanie więcej niż 1 dokumentu (lub pliku) jednocześnie.
  • Aplikacje komunikacyjne, które umożliwiają użytkownikowi prowadzenie rozmów w różnych pokojach na każdej karcie.
  • odczytywanie aplikacji, które otwierają linki do artykułów w nowych kartach;

Różnice w stosunku do kart utworzonych przez dewelopera

Przechowywanie dokumentów na osobnych kartach przeglądarki zapewnia bezpłatną izolację zasobów, co nie jest dostępnych obecnie w sieci. Karty utworzone przez dewelopera nie byłyby w stanie łatwo skalować do setek kart. jak karty przeglądarki. funkcje przeglądarki, takie jak historia nawigacji, „Kopiuj adres URL tej strony”, „Przesyłaj”; tę kartę” lub „Otwórz tę stronę w przeglądarce” została zastosowana do kart utworzonych przez programistę strony interfejsu, a nie wybranej strony dokumentu.

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

Bieżąca "display": "browser" ma już konkretne znaczenie:

Otwiera aplikację internetową zgodnie z obowiązującą na niej konwencją otwierania hiperlinków w klienta użytkownika (np. na karcie przeglądarki lub w nowym oknie).

Przeglądarki mogą robić w interfejsie wszystko, co zechcą, ale jest to niewątpliwie znaczącą zmianą oczekiwań deweloperów, jeśli "display": "browser" nagle oznaczał „działanie w osobnym okno specyficzne dla aplikacji, bez funkcji przeglądarki, ale interfejs dokumentu z kartami”.

Ustawienie "display": "browser" pozwala rezygnować z treści aplikacji. okno.

Obecny stan,

Krok Stan
1. Utwórz wyjaśnienie Ukończono
2. Utwórz początkową wersję roboczą specyfikacji Nie rozpoczęto
3. Zbieraj opinie iterować projekt W toku
4. Wersja próbna origin W toku
5. Uruchom Nie rozpoczęto

Korzystanie z trybu aplikacji z kartami

Aby można było korzystać z trybu aplikacji z kartami, deweloperzy muszą włączyć w swoich aplikacjach: wartość trybu "display_override" w manifeście aplikacji internetowej.

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

Następnie możesz opcjonalnie użyć właściwości "tab_strip", by dostosować działanie karty. Zawiera dwa dozwolone usługi podrzędne "home_tab" i "new_tab_button". Jeśli właściwość "tab_strip" nie jest obecnie, określone właściwości” Użyte wartości: "auto". Przeglądarka określa, jakie wartości użyj w przypadku usługi "auto".

Karta Główna

Karta Główna jest przypiętą kartą, która po włączeniu dla aplikacji powinna być zawsze widoczna, gdy aplikacja otwartego. Ta karta nigdy nie powinna nawigować. Linki kliknięte na tej karcie powinny otwierać się w nowej karcie aplikacji. aplikacji; może dostosować adres URL i wyświetlaną na niej ikonę.

Dozwolone wartości atrybutu "home_tab" to:

  • "auto", by przeglądarka mogła określić, co ma zrobić.
  • "absent", by przeglądarka nie wyświetlała karty głównej.
  • Obiekt z 2 właściwościami podrzędnymi:
    • "url" z dozwolonymi wartościami "auto" lub adresem URL do zablokowania karty głównej.
    • "icons" z dozwolonymi wartościami "auto" lub tablicą ikon jak w głównej Usługa: "icons".

Przycisk Nowa karta

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

Dozwolone wartości atrybutu "new_tab_button" to:

  • "auto", by przeglądarka mogła określić, co ma zrobić.
  • "absent", aby przeglądarka nie wyświetlała przycisku nowej karty.
  • Obiekt z 2 właściwościami podrzędnymi:
    • "url" z dozwolonymi wartościami "auto" lub adresem URL objętym raportowaniem umożliwiającym otwieranie nowych kart.
    • "icons" z dozwolonymi wartościami "auto" lub tablicą ikon jak w głównej Usługa: "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"
        }
      ]
    }
  }
}

Wykrywam tryb aplikacji z kartami

Aplikacje mogą wykryć, czy działają w trybie aplikacji z kartami, sprawdzając display-mode Funkcja multimediów CSS w kodzie 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

Launch Handler API umożliwia przekierowanie aplikacji uruchamia się w istniejących oknach aplikacji, aby zapobiegać otwieraniu duplikatów okien. Gdy zestawy aplikacji z kartami "client_mode": "navigate-new", uruchomienia aplikacji będą otwierać nową kartę w istniejącego okna aplikacji.

Prezentacja

Możesz wypróbować tryb aplikacji z kartami, ustawiając 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 wersję demonstracyjną trybu aplikacji z kartami dostępny na karcie tabbed-application-mode.glitch.me.

Prześlij opinię

Zespół Chrome chce dowiedzieć się więcej o Twoich doświadczeniach związanych z korzystaniem z trybu aplikacji z kartami.

Opowiedz nam o konstrukcji interfejsu API

Czy jest jakiś tryb aplikacji z kartami, który nie działa zgodnie z oczekiwaniami? Skomentuj problem z plikiem manifestu aplikacji internetowej, który utworzyliśmy.

Zgłoś problem z implementacją

Czy wystąpił błąd z implementacją Chrome? Zgłoś błąd na stronie new.crbug.com. Postaraj się podać jak najwięcej szczegółów. To proste instrukcje dotyczące odtwarzania i wpisz UI>Browser>WebAppInstalls w polu Komponenty. Glitch doskonale sprawdza się w przypadku szybkiego i łatwego udostępniania zgłoszeń.

Pokaż wsparcie dla interfejsu API

Czy zamierzasz korzystać z trybu aplikacji z kartami? Twoje publiczne wsparcie pomaga zespołowi Chrome nadaje priorytet funkcjom 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 jak go używasz.

Podziękowania

Tryb aplikacji z kartami zbadał Matt Giuca. Eksperymentalny Za wdrożeniem w Chrome popracował Alan Cutter. Ten artykuł została sprawdzona przez użytkownika Joe Medley. Baner powitalny: Till Niermann na Wikimedia Commons