Web Share API 第二次执行失败

Web Share API fails on second execution

我在我的代码中实现了 navigator.share() 函数。它在第一次调用时有效,但是当我尝试通过同一事件再次调用它时,我得到 NotAllowedError:当前上下文中用户代理或平台不允许请求,可能是因为用户拒绝了权限。

我发现这通常是由于 navigator.share() 没有被用户输入直接调用引起的,以前如果在获取回调中调用也是如此。但是,今天它应该被允许作为提取回调的一部分。考虑到它在第一次尝试时有效并且在连续尝试时失败,这种行为也很奇怪。

如有任何想法,我们将不胜感激。

很可能您没有捕捉到 API 在用户取消共享时抛出的异常。我只是尝试取消,然后在我的博客上随机 article 再次分享,它奏效了。这是我使用的代码:

const share = async () => {
  try {
    await navigator.share({
      title: '',
      text: `“${document.title}” by @tomayac:`,
      url: document.querySelector('link[rel=canonical]').href,
    });
  } catch (err) {
    console.warn(err.name, err.message);
  }
};