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

  1. Pemeriksaan fitur dengan navigator.share dalam kode, bukan berdasarkan string agen pengguna; browser berubah setiap minggu.
  2. Tulisan papan klip sebagai pengganti universal: URL mendarat di papan klip pembaca dengan perilaku tidak terkejut dari roti panggang Anda.
  3. Pertahankan paling banyak satu perubahan status visual: tautan yang disalin dan bersulang, dan tidak lebih banyak byte skrip daripada cuplikan di atas.
  4. 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.