Ce face navigator.share / canShare
navigator.share(date) afișează fereastra de partajare a telefonului sau a sistemului de operare, cu aplicațiile instalate. Merge doar ca urmare a unui clic, iar promisiunea este respinsă cu AbortError dacă utilizatorul închide fereastra.
navigator.canShare(date) verifică dinainte dacă datele (de exemplu fișiere) pot fi partajate. Pe calculatoarele fără suport, navigator.share lipsește: afișează atunci butoane clasice sau copiază linkul.
Parametri
| Parametru | Descriere |
|---|---|
date |
Un obiect cu title, text, url și/sau files. |
Ce returnează
share: o Promise. canShare: true sau false.
Exemple
Exemplul 1: Butonul „Distribuie” pentru un articol
document.querySelector("#distribuie").addEventListener("click", async () => {
const date = { title: document.title, url: location.href };
if (navigator.canShare?.(date)) {
try {
await navigator.share(date);
console.log("distribuit");
} catch (e) {
console.log(e.name === "AbortError" ? "anulat" : e.message);
}
} else {
await navigator.clipboard.writeText(date.url);
console.log("link copiat");
}
});
Rezultat în browser
distribuit
Greșeli frecvente
- Afișezi butonul de partajare peste tot fără verificare. Pe multe calculatoare
navigator.sharenu există și primeștiTypeError.
Comenzi înrudite
navigator.clipboard.writeText / readText: Copiază un text în clipboard sau îl citește de acolo (cu permisiunea utilizatorului).new URL(): Desface o adresă URL în părți (domeniu, cale, parametri) și o construiește corect la loc.Blob / File: Un bloc de date imuabil, cu tip MIME (Blob), sau un fișier cu nume și dată (File).