Google chrome 网站上的Google Chrome扩展串口

Google chrome 网站上的Google Chrome扩展串口,google-chrome,google-chrome-extension,serial-port,Google Chrome,Google Chrome Extension,Serial Port,我使用chrome.serial在COM端口上与设备通信,我需要在我的网站上提供javascript的基本api。第一次尝试是内容脚本+消息,但我不能对内容脚本使用serial权限,因为其中一个需要扩展才能打包应用程序,另一个需要扩展。我可以解决此问题吗?您可以通过支持和使用解决此问题 获取正在使用的扩展Id并为单个消息建立 从另一个扩展发送消息时激发 工具书类 index.html <button>Connect</button> <script s

我使用chrome.serial在COM端口上与设备通信,我需要在我的网站上提供javascript的基本api。第一次尝试是内容脚本+消息,但我不能对内容脚本使用
serial
权限,因为其中一个需要扩展才能打包应用程序,另一个需要扩展。我可以解决此问题吗?

您可以通过支持和使用解决此问题

获取正在使用的扩展Id并为单个消息建立

从另一个扩展发送消息时激发

工具书类
index.html

<button>Connect</button>
<script src="main.js"></script>
launch.js

chrome.app.runtime.onLaunched.addListener(function() {
  chrome.app.window.create('index.html', {
    id: "mainwin",
    innerBounds: {
      width: 320,
      height: 240
    }
  });
});

这正是我想要避免的:两个扩展,而不是一个。但如果这是唯一的办法,我会这么做。谢谢但似乎我不能在打包应用程序中使用
chrome.extension
,它是
未定义的
,经过一些调查,这是在chrome中实现它的唯一方法。你必须创建一个应用程序和一个扩展。扩展只包含一个content_脚本,其中有一些监听器(我放置和EventListener),它们将使用chrome.runtime.sendMessage将接收到的数据转发给应用程序。应用程序将使用chrome.runtime.onMessageExternal listener等待,当数据到达时,将打开一个串行端口并发送数据。我不得不说,在linux中,这个应用程序工作得很好,但在windows中,有时端口没有响应:我正在调试这个,解决后,我计划将一些东西上传到github;)@我为谷歌浏览器开发了一个自定义扩展和插件。我在linux PC中工作正常,但在windows中,有时端口未关闭,然后您必须重新启动浏览器:S如果您感兴趣,我可以将代码上载到github;)@谢谢你的回答。好的,它在Windows上显然不稳定。@我感觉这不是真的。应用程序可以来自网站,因此不需要内容脚本/扩展,只要事先在清单中设置,网站就可以直接与应用程序对话。这不是网页,而是chrome应用程序(不是问题的答案)。我试着运行它,要做到这一点,请阅读步骤4:
{
  "name": "Printer at COM3 test",
  "version": "1",
  "manifest_version": 2,
  "permissions": ["serial"],
  "minimum_chrome_version": "23",
  "icons": {
    "16": "icon_16.png",
    "128": "icon_128.png"
  },
  "app": {
    "background": {
      "scripts": ["launch.js"]
    }
  }
}
chrome.app.runtime.onLaunched.addListener(function() {
  chrome.app.window.create('index.html', {
    id: "mainwin",
    innerBounds: {
      width: 320,
      height: 240
    }
  });
});