&引用;“复制”;Safari桌面Web共享API中缺少选项?

&引用;“复制”;Safari桌面Web共享API中缺少选项?,safari,web-share,Safari,Web Share,我正在尝试为一些我希望允许用户复制/共享的文本实现Web共享API,除了Safari desktop的一个问题外,它是成功的。我检查navigator.share,如果它存在,那么我只打开本机共享屏幕,如果它不存在,我就直接将文本复制到剪贴板(就像在桌面上一样) Safari desktop确实支持Web共享API,但是它似乎没有提供一种复制它的方法?你可以在截图中看到,它只是给了我一些选择。我错过什么了吗?难道没有办法选择“复制”吗 const copyURL = copyText =>

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

Safari desktop确实支持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的共享表中确实没有“复制”功能。好消息是Safari支持,因此您可以轻松地将其用作替代方案,如下例所示:

异步函数copyPageUrl(){ 试一试{ 等待navigator.clipboard.writeText(location.href); log(“复制到剪贴板的页面URL”); }捕捉(错误){ console.error('复制失败:',错误); } }