Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript chrome.serial/chrome.usb未定义_Javascript_Google Chrome_Google Chrome Extension_Serial Port - Fatal编程技术网

Javascript chrome.serial/chrome.usb未定义

Javascript chrome.serial/chrome.usb未定义,javascript,google-chrome,google-chrome-extension,serial-port,Javascript,Google Chrome,Google Chrome Extension,Serial Port,我正在尝试通过chrome插件/扩展访问串行/usb端口。当我启动它抛出的插件时,我正在跟踪来自&&&的文档 “未捕获的TypeError:无法读取未定义的属性'getDevices'” 我还尝试了来自的示例代码,但遇到了相同的问题,基本上chrome.usb/chrome.serial是未定义的 任何给我正确方向的建议都将不胜感激。谢谢 我附上我的样本代码 popup.html <!DOCTYPE html> <html> <body style="width

我正在尝试通过chrome插件/扩展访问串行/usb端口。当我启动它抛出的插件时,我正在跟踪来自&&&的文档

“未捕获的TypeError:无法读取未定义的属性'getDevices'”

我还尝试了来自的示例代码,但遇到了相同的问题,基本上chrome.usb/chrome.serial是未定义的

任何给我正确方向的建议都将不胜感激。谢谢

我附上我的样本代码

popup.html

<!DOCTYPE html>
<html>
  <body style="width: 300px">
    Open <a href="http://stackoverflow.com" target="_blank">this page</a> and then 
    <button id="clickme">click me</button>
    <script type="text/javascript" src="popup.js"></script>
  </body>
</html>
只有Chrome应用程序(不是Chrome扩展)可以访问硬件。检查创建Chrome应用程序的步骤:

只有Chrome应用程序(不是Chrome扩展)可以访问硬件。检查创建Chrome应用程序的步骤:

这两个API都是可用的。您的清单指定了一个扩展名

Chrome扩展具有完全不同的功能。它们重叠,但一个不是另一个的超集

如果您想要一个内容脚本(读:与浏览器本身交互),它必须是一个扩展。如果你想要USB/串行API,它必须是一个应用程序

您必须重新考虑如何与浏览器交互(应用程序有一些方法可以将自己暴露在页面中),或者将两者结合起来并让它们使用。

这两种API都是。您的清单指定了一个扩展名

Chrome扩展具有完全不同的功能。它们重叠,但一个不是另一个的超集

如果您想要一个内容脚本(读:与浏览器本身交互),它必须是一个扩展。如果你想要USB/串行API,它必须是一个应用程序


您必须重新思考如何与浏览器交互(应用程序有一些方法可以将自己暴露在页面中),或者同时使用它们。

以上指导原则很有用,我理解btwn应用程序和扩展的区别。以上指导原则很有帮助,我理解btwn应用程序和扩展的区别。
function readPorts() {
    console.log("Reading ports . . . . . ")
     chrome.usb.getDevices(function(devices) {
        console.warn('chrome.usb.getDevices error: ' +
                 chrome.runtime.lastError.message);
        for (var i = 0; i < devices.length; i++) {
           console.log('Device : ' + devices[i].path + '"===' + devices[i].path + '=====');
        }
    });
}

document.getElementById('clickme').addEventListener('click', readPorts);
{
  "manifest_version": 2,

  "name": "Getting started example",
  "description": "This extension will read the com ports from your machine",
  "version": "1.0",

  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html",
    "default_title": "Read com ports!"
  },
  "content_scripts": [
    {
      "matches": ["http://*/*","https://*/*"],
      "js": ["myscript.js"]
    }
  ],
  "permissions": [
    "serial",
    "usb"
  ]
}