Aplikacje internetowe mogą korzystać z tych samych funkcji udostępniania dostarczanych przez system, co aplikacje na konkretne platformy.
Dzięki interfejsowi Web Share API aplikacje internetowe mogą korzystać z tych samych funkcji udostępniania dostarczanych przez system co aplikacje na konkretne platformy. Interfejs Web Share API umożliwia aplikacjom internetowym udostępnianie linków, tekstu i plików innym aplikacjom zainstalowanym na urządzeniu w taki sam sposób jak aplikacje na konkretną platformę.

Możliwości i ograniczenia
Funkcja udostępniania w internecie ma te możliwości i ograniczenia:
- Można go używać tylko w witrynie, do której dostęp jest uzyskiwany przez HTTPS.
- Jeśli udostępnianie odbywa się w ramce iframe innej firmy, należy użyć atrybutu
allow
. - Musi być wywoływana w odpowiedzi na działanie użytkownika, np. kliknięcie. Wywołanie go za pomocą modułu obsługi
onload
jest niemożliwe. - Może udostępniać adresy URL, tekst lub pliki.
Udostępnianie linków i tekstu
Aby udostępniać linki i tekst, użyj metody share()
, która jest metodą opartą na obietnicach i wymaga obiektu właściwości.
Aby przeglądarka nie zgłaszała błędu TypeError
, obiekt musi zawierać co najmniej jedną z tych właściwości: title
, text
, url
lub files
. Możesz na przykład udostępnić tekst bez adresu URL lub odwrotnie. Umożliwienie korzystania ze wszystkich 3 elementów zwiększa elastyczność przypadków użycia. Wyobraź sobie, że po uruchomieniu poniższego kodu użytkownik wybrał aplikację poczty e-mail jako miejsce docelowe. Parametr title
może stać się tematem e-maila, parametr text
– treścią wiadomości, a pliki – załącznikami.
if (navigator.share) {
navigator.share({
title: 'web.dev',
text: 'Check out web.dev.',
url: 'https://web.dev/',
})
.then(() => console.log('Successful share'))
.catch((error) => console.log('Error sharing', error));
}
Jeśli Twoja witryna ma wiele adresów URL dla tej samej treści, udostępnij kanoniczny adres URL strony zamiast bieżącego adresu URL. Zamiast udostępniać document.location.href
, sprawdź, czy na stronie w sekcji <head>
znajduje się tag kanonicznego adresu URL <meta>
, i udostępnij go. Zapewni to użytkownikowi lepsze wrażenia. Nie tylko pozwala to uniknąć przekierowań, ale też zapewnia, że udostępniony adres URL zapewnia odpowiednie wrażenia użytkownika w przypadku danego klienta. Jeśli na przykład znajomy udostępni Ci mobilny adres URL, a Ty otworzysz go na komputerze, powinna wyświetlić się wersja na komputery:
let url = document.location.href;
const canonicalElement = document.querySelector('link[rel=canonical]');
if (canonicalElement !== null) {
url = canonicalElement.href;
}
navigator.share({url});
Udostępnianie plików
Aby udostępniać pliki, najpierw sprawdź, czy funkcja navigator.canShare()
jest dostępna, i wywołaj ją. Następnie w wywołaniu funkcji navigator.share()
umieść tablicę plików:
if (navigator.canShare && navigator.canShare({ files: filesArray })) {
navigator.share({
files: filesArray,
title: 'Vacation Pictures',
text: 'Photos from September 27 to October 14.',
})
.then(() => console.log('Share was successful.'))
.catch((error) => console.log('Sharing failed', error));
} else {
console.log(`Your system doesn't support sharing files.`);
}
Zwróć uwagę, że w przykładzie wykrywanie uchwytów odbywa się przez testowanie navigator.canShare()
, a nie navigator.share()
.
Obiekt danych przekazywany do funkcji canShare()
obsługuje tylko właściwość files
.
Możesz udostępniać niektóre typy plików audio, graficznych, PDF, wideo i tekstowych.
Pełną listę znajdziesz w artykule Permitted File Extensions in Chromium (Dozwolone rozszerzenia plików w Chromium). W przyszłości możemy dodać więcej typów plików.
Udostępnianie w elementach iframe innych firm
Aby wywołać działanie udostępniania z poziomu ramki iframe firmy zewnętrznej, umieść ramkę iframe z atrybutem allow
o wartości web-share
:
<!-- On https://example.com/index.html -->
<iframe allow="web-share" src="https://third-party.example.com/iframe.html"></iframe>
Studium przypadku: Trasa Świętego Mikołaja

Śledzenie Świętego Mikołaja to projekt open source, który jest w Google tradycją świąteczną. W każdym grudniu możesz świętować ten okres, korzystając z gier i materiałów edukacyjnych.
W 2016 roku zespół Tras Świętego Mikołaja użył interfejsu Web Share API na Androidzie. Ten interfejs API idealnie pasował do urządzeń mobilnych. W poprzednich latach zespół usunął przyciski udostępniania na urządzeniach mobilnych, ponieważ przestrzeń jest tam bardzo cenna i nie można było uzasadnić obecności kilku elementów do udostępniania.
Dzięki interfejsowi Web Share API mogli jednak wyświetlać tylko jeden przycisk, oszczędzając cenne piksele. Stwierdzili też, że użytkownicy, którzy korzystali z Web Share, udostępniali treści o około 20% częściej niż użytkownicy, którzy nie mieli włączonego tego interfejsu API. Otwórz Trasę Świętego Mikołaja, aby zobaczyć, jak działa Web Share.
Obsługa przeglądarek
Obsługa interfejsu Web Share API w przeglądarkach jest zróżnicowana, dlatego zalecamy używanie wykrywania funkcji (jak opisano w poprzednich przykładach kodu) zamiast zakładania, że dana metoda jest obsługiwana.
Oto ogólny zarys obsługi tej funkcji. Szczegółowe informacje znajdziesz w jednym z tych artykułów pomocy.
navigator.canShare()
navigator.share()
Wyrażanie poparcia dla interfejsu API
Czy zamierzasz używać interfejsu Web Share API? Twoje publiczne wsparcie pomaga zespołowi Chromium określać priorytety funkcji i pokazuje innym dostawcom przeglądarek, jak ważne jest ich wspieranie.
Wyślij tweeta do @ChromiumDev z hasztagiem #WebShare
i napisz, gdzie i jak korzystasz z tej funkcji.