首页 > 解决方案 > 如何允许 Chrome 扩展程序打开站点信息对话框

问题描述

我正在尝试制作一个(除其他外)可以连接到用户指定的串行端口的 chrome 扩展。我已经找到了一个使用 node.js 制作的 PWA,它利用了此处描述的实验性功能:https ://wicg.github.io/serial/ 我可以让节点启动服务器并连接到它。我运行以下代码:

port = await navigator.serial.requestPort({});

这将为用户打开以下对话框:

工作 PWA 串口选择器的屏幕截图

我不确定这种对话屏幕的名称是什么,它连接到“查看站点信息”图标,所以我在问题标题中将其命名。在任何情况下,我都试图将此功能打包在 chrome 扩展中,但是当我运行相同的代码时,对话框没有打开,立即返回,就好像用户点击了“取消”一样。我收到以下错误:

Uncaught (in promise) DOMException: No port selected by the user.

我在想这种对话可能需要在清单文件中启用一些权限。我无法更改选择端口的方式,因为据我了解相关代码位于属于 google 的黑盒库中。

标签: javascriptgoogle-chrome-extensionprogressive-web-apps

解决方案


USB 和蓝牙不是实验性的。该 API 受到 Chrome 和 Edge 的支持,并且已经使用了几年。我已经使用 USB 构建了几个 PWA。

我不是扩展开发人员,因此不确定 API 是否在该上下文中公开。

对于 USB 和蓝牙,您需要对各种低级编程大惊小怪。但是一旦你开始运行它就很酷了:)

此外,nodejs 与 PWA 无关。这是一个服务器端平台问题。


推荐阅读