"Copy" Safari 桌面网络共享中缺少选项 API?

"Copy" option missing from Safari Desktop Web Share API?

我正在尝试为某些文本实现 Web 共享 API,我希望允许用户 copy/share,除了 Safari 桌面出现问题外,它已经成功了。我检查 navigator.share,如果它存在,那么我只打开本机共享屏幕,如果不存在,我只是将文本直接复制到剪贴板(就像在桌面上一样)。

Safari 桌面确实支持 Web 共享 API,但它似乎不提供仅复制它的方法?您可以在屏幕截图中看到它只是为我提供了一些选项。我错过了什么吗?没有办法把“复制”作为选项吗?

const copyURL = copyText => {
if (navigator.share) {
  navigator
    .share({ text: copyText })
    .then(() => {})
    .catch(console.error);
} else {
  navigator.permissions.query({ name: 'clipboard-write' }).then(result => {
    if (result.state === 'granted' || result.state === 'prompt') {
      navigator.clipboard.writeText(copyText).then(() => {
        setLinkCopied(true);
      });
    }
  });
}

};

桌面版 Safari 的共享中确实没有“复制”功能sheet。好消息是 Safari 支持 Async Clipboard API,因此您可以轻松地将其用作替代项,如下例所示:

async function copyPageUrl() {
  try {
    await navigator.clipboard.writeText(location.href);
    console.log('Page URL copied to clipboard');
  } catch (err) {
    console.error('Failed to copy: ', err);
  }
}