Google Chrome Extension serial port on website

后端 未结 2 1469
感情败类
感情败类 2020-12-29 12:24

I use chrome.serial to communicate with device on COM port and i need provide basic api for javascript on my web-site. First try was with content_script + messaging, but i c

2条回答
  •  再見小時候
    2020-12-29 13:22

    index.html

    
    
    

    main.js

    var connectionId;
    
    /* Converts a string to UTF-8 encoding in a Uint8Array; returns the array */
    
    var str2ab = function(str) {
       var encodedString = unescape(encodeURIComponent(str));
       var bytes = new Uint8Array(encodedString.length);
       for (var i = 0; i < encodedString.length; ++i) {
          bytes[i] = encodedString.charCodeAt(i);
       }
       return bytes.buffer;
    };
    
    var options = {
      'bitrate': 115200,
      'dataBits': 'eight',
      'parityBit': 'no',
      'stopBits': 'one'
    }
    
    document.addEventListener('DOMContentLoaded', function () {
      document.querySelector('button').addEventListener('click', btnSend);
      chrome.serial.connect('COM3', options, function(info) {
        connectionId = info.connectionId;
        console.log("Connection established.");
      });
    });
    
    var btnSend = function() {
      var msg = "hello printer 123456\n";
      chrome.serial.send(connectionId, str2ab(msg), function() {} );
    }
    

    manifest.json

    {
      "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"]
        }
      }
    }
    

    launch.js

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

提交回复
热议问题