Сообщение расширения Chrome, передаваемое из веб-приложения в расширение: не проверено runtime.lastError: Не удалось установить sh соединение. Получающий конец не существует - PullRequest
0 голосов
/ 05 февраля 2020

Ожидается:

Веб-приложение отправляет сообщение на расширение chrome, расширение chrome отвечает на приложение wep.

Отправка сообщения из веб-приложения:

const chromeExtensionId = '1234567890example'
chrome.runtime.sendMessage(chromeExtensionId, { message: "version" },
  function (reply) {
    console.log(reply)
    if (reply) {
      if (reply.version) {
        if (reply.version >= 0.01) {
          console.log('true')
        } else {
          console.log('false')
        }
      }
    }
  }
);

Прослушивание и ответ на сообщение из фона. js:

chrome.runtime.onMessageExternal.addListener(
  function(request, sender, sendResponse) {
    if (request) {
      if (request.message) {
        if (request.message == "version") {
          sendResponse({version: 0.1});
        }
      }
    }
    return true;
  }
);

В расширении chrome manifest.json:

  "externally_connectable": {
    "matches": [
      "https://*.productionwebsite.com/*",
      "http://localhost:3000/"
    ]
  },

Локально это работает, как и ожидалось (режим разработчика). Я ожидаю, что это сработает аналогично, как только будет опубликовано это расширение chrome.

Факт:

Я обновляю chromeExtensionId до опубликованного идентификатора расширения chrome и перезапускаю браузер. Веб-приложение отправляет сообщение на опубликованное расширение chrome. JS Консоль веб-приложения показывает:

Unchecked runtime.lastError: Could not establish connection. Receiving end does not exist.

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