javascript - 如何允许 Chrome 扩展程序打开站点信息对话框
问题描述
我正在尝试制作一个(除其他外)可以连接到用户指定的串行端口的 chrome 扩展。我已经找到了一个使用 node.js 制作的 PWA,它利用了此处描述的实验性功能:https ://wicg.github.io/serial/ 我可以让节点启动服务器并连接到它。我运行以下代码:
port = await navigator.serial.requestPort({});
这将为用户打开以下对话框:
我不确定这种对话屏幕的名称是什么,它连接到“查看站点信息”图标,所以我在问题标题中将其命名。在任何情况下,我都试图将此功能打包在 chrome 扩展中,但是当我运行相同的代码时,对话框没有打开,立即返回,就好像用户点击了“取消”一样。我收到以下错误:
Uncaught (in promise) DOMException: No port selected by the user.
我在想这种对话可能需要在清单文件中启用一些权限。我无法更改选择端口的方式,因为据我了解相关代码位于属于 google 的黑盒库中。
解决方案
USB 和蓝牙不是实验性的。该 API 受到 Chrome 和 Edge 的支持,并且已经使用了几年。我已经使用 USB 构建了几个 PWA。
我不是扩展开发人员,因此不确定 API 是否在该上下文中公开。
对于 USB 和蓝牙,您需要对各种低级编程大惊小怪。但是一旦你开始运行它就很酷了:)
此外,nodejs 与 PWA 无关。这是一个服务器端平台问题。
推荐阅读
- data-visualization - 如何在超集中制作不可编辑的过滤器
- android - RxJava、Retrofit、Android - 等到所有请求完成
- python-3.x - 我正在编写比较 date.print 的代码首先,如果第一个更大(或)打印第二个,如果第二个更大,如果日期无效则出错
- asterisk - Asterisk 广播机制
- bash - 如何在 .bash_profile macOS 中获取外部文件
- ios - 发布时 Xamarin.Forms 项目 iOS 中没有网络连接
- python - 三个列表的交叉点并保存所有交叉点?(不是严格的交集)
- c# - 将图像上传到 SharePoint 文档库 C#
- firebase - React Native Flatlist 只渲染一行
- sql - 如何将 SQL 转换为 lambda 或 LINQ