Udostępnij za pośrednictwem


Integracja progresywnych aplikacji internetowych z Windows Share

W tym artykule wyjaśniono, jak zintegrować progresywną aplikację internetową (PWA) z funkcją Windows Share. Ta funkcja umożliwia użytkownikom udostępnianie zawartości z jednej aplikacji systemu Windows do innej. Aplikacja PWA rejestruje się jako docelowy element udostępniania, aby odbierać i obsługiwać udostępnione pliki w aplikacji.

Co to jest udział docelowy?

Funkcja Docelowy Element Udostępniania została wprowadzona w systemie Windows 8 i umożliwia aplikacji odbieranie danych z innej aplikacji. Udostępnianie elementu docelowego działa jak Schowek, ale z zawartością dynamiczną.

Udostępnianie zawartości z aplikacji PWA

Aby udostępnić zawartość, program PWA generuje zawartość (np. tekst, linki lub pliki) i przekazuje zawartość udostępnioną do systemu operacyjnego. System operacyjny pozwala użytkownikowi zdecydować, która aplikacja ma być używana do odbierania tej zawartości. Aplikacje PWA mogą używać Web Share API aby wywołać wyświetlenie okna udostępniania w systemie Windows. Interfejs API programu Web Share jest obsługiwany w przeglądarce Microsoft Edge i innych przeglądarkach opartych na chromium.

Zobacz Udostępnianie zawartości w dokumentacji przeglądarki Microsoft Edge, aby uzyskać pełny przykład sposobu udostępniania zawartości z poziomu programu PWA.

Odbieranie udostępnionych plików w aplikacji PWA

Aby odbierać zawartość, program PWA działa jako element docelowy zawartości. Program PWA musi być zarejestrowany w systemie operacyjnym jako element docelowy udostępniania zawartości.

Element share_target musi zawierać niezbędne informacje, aby system mógł przekazać udostępnioną zawartość do Twojej aplikacji. Rozważ następującą przykładową konfigurację manifestu share_target :

"share_target": {
  "action": "./share_target_path/?custom_param=foo",
  "method": "POST",
  "enctype": "multipart/form-data",
  "params": {
    "files": [
      {
        "name": "mapped_files",
        "accept": ["image/jpeg"]
      }
    ]
  }
},

Gdy aplikacja zostanie wybrana przez użytkownika jako element docelowy zawartości udostępnionej, zostanie uruchomiona aplikacja PWA. Żądanie GET HTTP jest przesyłane do adresu URL określonego action przez właściwość . Dane udostępnione są przekazywane jako parametry zapytania title, text i url. Oto następujące żądanie: /handle-shared-content/?title=shared title&text=shared text&url=shared url.

W poniższym przykładzie pokazano, jak zarejestrować proces roboczy usługi o określonym zakresie:

navigator.serviceWorker.register('scoped-service-worker.js',
                { scope: "./share_target_path/" })

Pracownik serwisowy obsługuje dane udostępniania zgodnie z potrzebami, a następnie albo spełnia żądanie, albo może je przekierować z powrotem na ścieżkę własną. W poniższym przykładzie pokazano, jak przekierować żądanie z powrotem ze ścieżki niestandardowej:

self.addEventListener('fetch', (event) => {
    event.respondWith((async () => {
        // Read the shared data here, then
        // Redirect back out of the share_target_path to the actual site
        return Response.redirect(event.request.url.replace("share_target_path/", ""));
    })());
    return;
});

Aby uzyskać więcej informacji, zobacz przykład odbierania zawartości udostępnionej w dokumentacji przeglądarki Microsoft Edge.

Zagadnienia dotyczące wydajności

Jeśli program obsługi pobierania jest dodawany wyłącznie do obsługi udostępniania, mogą wystąpić potencjalne problemy z opóźnieniami, ponieważ żądania są przerywane przez proces roboczy usługi. Aby rozwiązać ten problem, rozważ ustawienie share_target jako pseudo-ścieżki podrzędnej i zarejestrowanie procesu roboczego usługi w szczególności w zakresie tej ścieżki. Takie podejście umożliwia użycie procedury obsługi pobierania dla docelowego elementu udostępnienia bez rejestrowania tej samej procedury obsługi pobierania dla innych wywołań.

Przykładowa aplikacja PWA

Przykładowa aplikacja drukarki logo PWA na GitHubie pokazuje, jak zintegrować PWA z arkuszem udostępniania systemu Windows. Aplikacja umożliwia użytkownikom drukowanie logo PWA na drukarce. Aplikacja używa arkusza udziałów systemu Windows do udostępniania logo innym aplikacjom.

Zobacz także