使

使用原生 Web 共享 JavaScript API

2025-05-24

使用原生 Web 共享 JavaScript API

您是否知道可以使用 JavaScript 调用本机共享功能?

你可能在网上见过它们。
如果没有,我添加了一个视频演示,让你看看它的外观。

使用原生 Web 共享 JavaScript API

有兴趣把它添加到你的网站吗?
跟我一起来构建吧。

JavaScript 原生 Web 共享 API

需要注意的是,此方法并不适用于所有浏览器,它主要针对移动设备构建,但 Safari 等一些桌面版本也支持它。

请记住,当您使用此功能时,您应该始终创建后备共享方法。

我们要做的第一件事是查看当前用户是否支持导航器。

我们可以使用该in方法来检查导航器是否具有共享功能。

确定它的代码如下所示:

if ('share' in navigator) {
  console.log('native share available');
} else {
  console.log('provide fallback share');
}
Enter fullscreen mode Exit fullscreen mode

现在我们可以继续在我们的网页上添加一个可以点击的按钮。

<button id="share-button">Share me</button>
Enter fullscreen mode Exit fullscreen mode

然后我们可以通过按钮的 ID 获取该按钮。

const shareButton = document.getElementById('share-button');
Enter fullscreen mode Exit fullscreen mode

并附加一个监听器。

shareButton.addEventListener('click', (event) => {
  // Do the share action
});
Enter fullscreen mode Exit fullscreen mode

在这个函数中,我们可以调用原生共享或者使用我们的后备共享机制。

shareButton.addEventListener('click', (event) => {
  if ('share' in navigator) {
    navigator
      .share({
        title: 'Look at this native web share',
        url: 'https://daily-dev-tips.com/posts/using-the-native-web-share-javascript-api/',
      })
      .then(() => {
        console.log('Callback after sharing');
      })
      .catch(console.error);
  } else {
    console.log('provide fallback share');
  }
});
Enter fullscreen mode Exit fullscreen mode

让我们仔细看看这里发生了什么。

  • 我们将点击处理程序附加到按钮
  • 我们检查是否有原生共享选项
    • 是的:我们用标题和 URL 调用它
    • 不:我们应该提供一些后备方案

如您所见,我们甚至可以将回调附加到原生的分享 API。
您可能想用它来感谢用户的分享或记录一些分析事件。

如果你有兴趣,可以在这个 CodePen 上尝试一下。

Web 共享 API 选项

在我们的示例中,我们设置了标题和 URL 选项。让我们看看还能提供什么。

Web 共享 API 接受以下选项:

  • title:代表标题的字符串(可能会被共享平台忽略)
  • URL:可分享链接的URL
  • text:表示有关共享操作的一些信息的字符串
  • 文件:文件数组,支持多种文件选项

总的来说,你可以提供这样的对象:

const file = new File([blob], 'picture.jpg', { type: 'image/jpeg' });

navigator.share({
  title: 'Web Share',
  text: 'Testing out the web share API',
  url: 'https://daily-dev-tips.com/posts/using-the-native-web-share-javascript-api/',
  files: [file],
});
Enter fullscreen mode Exit fullscreen mode

浏览器支持

并非所有系统都支持此功能。不过,大多数移动浏览器都会支持。

一般来说,建议为共享选项设置自定义的后备模式。




caniuse.com 上关于各大浏览器对网页共享功能支持情况的数据

感谢您的阅读,让我们联系起来!

感谢您阅读我的博客。欢迎订阅我的电子邮件简报,并在FacebookTwitter上与我联系。

文章来源:https://dev.to/dailydevtips1/using-the-native-web-share-javascript-api-23ei
PREV
为什么 CSS :focus-within 如此神奇
NEXT
美化你的 GitHub 个人资料 GitHub 个人资料自述文件生成器 你好,世界,我是 Jomaree!👋