Приложение Chrome - не удается прочитать свойство 'connect' из неопределенного - PullRequest
0 голосов
/ 03 октября 2018

Я работаю над Raspberry pi 3, у меня есть веб-страница, которая отправляет текстовые данные в приложение Chrome, и до этого все работает.

После этого приложение Chrome должно отправить эти данные впоследовательный порт и здесь появляется ошибка:

Ошибка в обработчике события для runtime.onMessageExternal: TypeError: Невозможно прочитать свойство 'connect' из неопределенного

Проблема может заключаться в том, что это не приложение Chrome, а расширение и оно не может использовать этот API, поскольку только приложения Chrome имеют доступ к оборудованию, но я следовал этому руководству, чтобы создать свое первое приложение Chrome (https://developer.chrome.com/apps/first_app), так что, может быть, я чего-то не понял или пропустил шаг.

Вот мой код, заранее спасибо за помощь!

manifest.json

{
  "name": "Send serial data",
  "description": "App to send serial data.",
  "version": "1.0",
  "manifest_version": 2,
  "app": {
    "background": {
      "scripts": ["background.js"]
    }
  },
  "icons": { "16": "img-16.png", "128": "img-128.png" },
  "externally_connectable" : {
    "matches": ["*://localhost/*"]
  }
}

background.js

var msg ;

function openSend(data) {
    var onConnect ;
    onConnect = function(connectionInfo) {
        _this.connectionId = connectionInfo.connectionId;
    }

    chrome.serial.connect("/dev/ttyAMA0", {bitrate: 115200}, onConnect);

    chrome.serial.send(connectionId, convertStringToArrayBuffer(data), function(sendInfo) {
        if(sendInfo.error) $.modal('<div id="title">Unable to send data: ' + sendInfo.error + '</div>')
    });
}

chrome.runtime.onMessageExternal.addListener((message, sender, sendResponse) => {
    console.log(message.data);
    msg = message.data ;
    openSend(msg);  
});

1 Ответ

0 голосов
/ 04 октября 2018

Решено, я просто забыл поместить эту строку кода в мой manifest.json :

"permissions":["serial"],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...