【问题标题】:"Copy" option missing from Safari Desktop Web Share API?Safari 桌面 Web 共享 API 中缺少“复制”选项?
【发布时间】:2020-08-18 09:47:13
【问题描述】:

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

Safari 桌面确实支持 Web Share 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 web-share


    【解决方案1】:

    桌面 Safari 的分享表中确实没有“复制”功能。好消息是 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);
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-28
      • 2011-06-03
      • 2011-01-18
      相关资源
      最近更新 更多