允许在第三方网站上使用 Web Share

Safari 技术预览版 160 起,在 iframe 中,没有包含 allow 属性的情况下,不再可能在第三方网站上使用 W3C 的 Web Share API。所有浏览器厂商都 同意了这项变更,这是 W3C 标准化过程的一部分,并且正在所有主流浏览器引擎(包括 Chrome、Edge、Firefox,在移动和桌面浏览器上)中推广。

Web Share API 允许网页开发者启用设备的原生分享功能,例如通过电子邮件或社交媒体分享链接。在此变更之前,该 API 可以在 iframe 中的任何网站上无限制地使用。然而,出于对隐私和安全的担忧,W3C 的浏览器厂商决定将该 API 的使用限制为仅限那些已明确获得使用权限的网站。

现在,网页开发者必须在 iframe HTML 元素中包含一个 allow 属性,才能在第三方网站的 iframe 内使用 Web Share API。该属性接受 web-share 值,并且可选地接受允许使用 API 的网站来源。

<iframe allow="web-share" src="https://example.com">
</iframe>

<iframe allow="web-share https://example.com" src="https://example.com">
</iframe>

如果没有 allow 属性,API 将抛出异常,并且在 iframe 中无法运行。allow 属性的语法由 W3C 的 Permissions Policy 规范定义。您可以在 MDN 上了解更多关于该语法的详情

这项变更是在保护用户隐私和安全方面必要的一步。它有助于确保 Web Share API 仅在开发者指示为可信的网站上使用。然而,这意味着网页开发者将需要进行一些代码更改,才能继续在第三方 iframe 中使用该 API。