Расширение Chrome: Угловой компонент, получающий сообщения от фонового скрипта

#angular #google-chrome-extension

#angular #google-chrome-расширение

Вопрос:

У меня есть расширение Chrome в angular 8, есть фоновый скрипт с контекстным меню при щелчке правой кнопкой мыши, я хочу отправить некоторую информацию при щелчке контекстного меню и, как правило, выполнял часть приема в сценариях содержимого

Я пробовал такой код в своем app.component.ts

       ngOnInit():void {
    chrome.runtime.onMessage.addListener( data => console.log("content: ",data));

  }
 

Но фоновый скрипт получает

_generated_background_page.html: 1 Непроверенная среда выполнения.Последняя ошибка: не удалось установить соединение. Принимающий конец не существует.

Итак, похоже, я неправильно инициализирую скрипты содержимого в своем приложении angular.

Я попробовал что-то подобное в своем manifest.json, но безуспешно

 "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": ["main.js","scripts.js","common.js"]
    }
  ],
 

Комментарии:

1. Попробуйте document_start .

2. Спасибо, но, к сожалению, то же самое. Есть ли у вас случайно какие-либо примеры приложения angular 2 , в котором функциональность скрипта содержимого описана в компонентах angular и «получает сообщения»? Я могу запросить вкладку и т. Д., Поэтому я могу связаться с Chrome API, Но, похоже, мой угловой код и фоновые скрипты не видят друг друга

3. Нет, я этого не делаю. Проблема в том, что ngOnInit, по-видимому, вообще не запускается.

4. @VladyslavDidenko вы узнали, как это решить? Я сталкиваюсь с той же проблемой.

5. @AfeezAziz, по крайней мере, не в угловом смысле. Что я сделал, так это то, что я включил 2 простых / ванильных JS-файла и указал на них в разделе моего сценария содержимого. Итак, у меня есть смесь файлов Angular и JS. Нет идеального решения, но у меня там не слишком много логики, так что пока это работает. Если вы найдете лучший способ, оставьте его здесь, чтобы я мог включить его в ответ