Tombol berbagi sosial biasanya memuat lima skrip pihak ketiga, masing-masing dengan toples cookie sendiri. Web Share API melakukan seluruh pekerjaan dengan satu panggilan ke sheet sistem operasi itu sendiri, dan postur privasi pun meningkat.
const btn = document.querySelector("#share");
btn.addEventListener("click", async () => {
const payload = {
title: document.title,
text: "Worth a read:",
url: location.href,
};
if (navigator.share) {
try { await navigator.share(payload); } catch { /* dismissed */ }
} else {
await navigator.clipboard.writeText(location.href);
announce("Link copied"); // your own toast or status region
}
});Kendalanya, dinyatakan dengan gamblang
- Hanya konteks aman: ada di https, yang mana setiap situs penting sudah ada.
- Diperlukan isyarat pengguna: panggilan harus berada dalam tindakan pengguna nyata, persis seperti yang disediakan tombol.
- Data yang Anda berikan adalah apa yang diterima aplikasi target, judul, teks, url; file juga didukung jika platform mengizinkan.
- Pemberhentian adalah AbortError, dan tidak masalah; perlakukan itu sebagai keheningan daripada kegagalan.
Pengganti yang menghormati semua orang
- Pemeriksaan fitur dengan navigator.share dalam kode, bukan berdasarkan string agen pengguna; browser berubah setiap minggu.
- Tulisan papan klip sebagai pengganti universal: URL mendarat di papan klip pembaca dengan perilaku tidak terkejut dari roti panggang Anda.
- Pertahankan paling banyak satu perubahan status visual: tautan yang disalin dan bersulang, dan tidak lebih banyak byte skrip daripada cuplikan di atas.
- Umumkan kepada teknisi pendukung mengenai toast atau penanda status Anda; pekerjaan penyalinan senyap adalah permintaan dukungan pembaca layar.
Satu tombol kecil, OS akan melakukan sisanya, dan lima skrip dihapus, bukan dikirim. Aritmatika yang sangat gacor.
