What’s your excuse for not using the web share API?
Christian Heilmann

Christian Heilmann @codepo8

About: That JavaScript/Browser guy who worked at Microsoft, Mozilla and Yahoo.

Location:
Berlin, Germany
Joined:
Oct 29, 2018

What’s your excuse for not using the web share API?

Publish Date: Nov 16 '24
3 2

The WebShare API is so easy to use, it is a crime people don't use it more. Instead, we have tons of dead "share on $thing" buttons on the web. Many of which spy on your users and lots of them that started as Wordpress plugins but now are security concerns. Instead of guessing how your visitors want to share the current URL or a file you provide, you can call the API and they can pick their favourite:

Animation of the web share API in action. With 10 lines of Code you can turn a button into a share button

This is the code and you can also check it on codepen:

let shareButton = document.querySelector('button');
shareButton.addEventListener("click", async () => {
  try {
    await navigator.share({ title: "Example Page", url: "" });
    console.log("Data was shared successfully");
  } catch (err) {
    console.error("Share failed:", err.message);
  }
});
Enter fullscreen mode Exit fullscreen mode

An empty url means the current document is shared. You can also add a different title, which makes more sense than "Example page".

Comments 2 total

  • Norbert Szabó
    Norbert SzabóNov 17, 2024

    Firefox support is zero. :(

  • Shahzeb Ahmed
    Shahzeb AhmedNov 28, 2024

    Great post on the WebShare API! It's such an overlooked tool that can really enhance user experience by allowing them to share content the way they prefer. The traditional "share on $platform" buttons often bring privacy concerns, so using the WebShare API makes a lot of sense for both security and simplicity. If you want to take it a step further, Cloudways offers an optimized WordPress environment where you can easily integrate such modern web standards, keeping your site fast, secure, and ready for the future. Thanks for the helpful demo!

Add comment