【问题标题】:Is Web Share API broken on Chrome + Windows 8.1?Chrome + Windows 8.1 上的 Web Share API 是否损坏?
【发布时间】:2021-05-01 05:07:24
【问题描述】:

我的代码与网络上的许多示例类似,包括 https://mdn.github.io/dom-examples/web-share/ 的 MDN 代码

      btn.addEventListener('click', () => {
        navigator.share(shareData)
          .then(() =>
            console.log('MDN shared successfully');
          )
          .catch((e) =>
            console.error('Error: ' + e);
          )
      });

问题:

navigator.share 如果共享被拒绝,则返回一个应该失败的承诺。就我而言,它会这样做,但会延迟几秒钟。 我的主要问题是这种延迟:如果我知道共享 API 失败,我可以回退,但在这里我需要等待未知的时间才会出现错误。

模式详情:

  • 错误是“错误:AbortError:共享已取消”
  • 我没有取消任何东西(在错误发生之前我看不到 UI)。也许 Windows 在没有显示任何消息的情况下拒绝了某些事情。
  • 我使用的是 Windows 8.1 Pro,这可能与此有关。
  • Chrome 90.0.4430.93(和以前的版本 89.0.4389.128)和 Edge(89.0.774.54 官方版本 64 位)也有同样的问题
  • 延迟超过 20 秒(断开互联网访问不会改变)

【问题讨论】:

    标签: windows-8.1 chromium web-share


    【解决方案1】:

    我刚刚在 Chrome 和 Edge(稳定版)上的 Windows 10 上尝试了 demo,它确实有效。可能是某个扩展程序干扰了 API?

    【讨论】:

    • 对。谢谢,它有帮助:看起来像“Chromium 之外的东西”。但可能不是扩展,因为我刚刚发现 Edge 在我的机器上遇到了同样的问题。我也会编辑我的问题。如果这只是成为“Win 8.1”有点难过,但它是错误的,但是......
    • 欢迎了解哪些浏览器设置会干扰。我禁用了扩展程序并允许“弹出窗口”,以防万一;没有改善。顺便说一句@DenverCoder9,我试图“投票”你的答案但不能,因为我没有这样做的“声誉”(即使是我自己的问题,叹息......)
    • 在 Windows 8.1 上使用 BrowserStack 和 Edge 90,我确实可以确认您在帖子中描述的行为。那时似乎是Windows问题。 FWIW,我在 Windows 8.1 和 Windows 10 上检查了 Edge 90 的本机系统菜单,在 8.1 上它缺少共享选项。比较 Windows 8.1Windows 10
    • 你是对的;看起来 Windows 8.1 已经落后了...感谢您的详细调查!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 2015-10-05
    相关资源
    最近更新 更多