Chrome + Windows 8.1 上的 Web Share API 是不是损坏?

Posted

技术标签:

【中文标题】Chrome + Windows 8.1 上的 Web Share API 是不是损坏?【英文标题】: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 秒(断开互联网访问不会改变)

【问题讨论】:

【参考方案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.1 和 Windows 10。 你是对的;看起来 Windows 8.1 已经落后了...感谢您的详细调查!

以上是关于Chrome + Windows 8.1 上的 Web Share API 是不是损坏?的主要内容,如果未能解决你的问题,请参考以下文章

某些 Windows 8 和 8.1 上的 Unity3d 4.6 UI 图像错误

Windows Phone 8.1 上的 RadioButtons 绑定

Windows 8.1 上的 DirectX 11 缺少 SDK 组件

Windows Phone 8.1 上的 WiFi 直连

锁定计算机会禁用 Windows 8.1 上的语音识别

带有 .resx 资源的 Windows Phone 8.1 上的 MissingManifestResourceException