@Ghoulll

Как получить доступ к chrome в Angular?

Как в angular получить доступ к chrome.runtime... в компоненте?
  • Вопрос задан
  • 183 просмотра
Решения вопроса 1
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер
не надо слушать вредные советы :)
Установите типы для хрома https://www.npmjs.com/package/@types/chrome

а потом где-нибудь создаем токен для инжектора.
export const CHROME = new InjectionToken('CHROME');

в провайдерах апп-модуля по этому токену провайдим значение
providers: [
  ...
  {
    provide: CHROME,
    useValue: window.chrome,
  }
  ...
]

В конструкторе вашего компонента или сервиса
constructor(
  @Inject(CHROME) private chrome: chrome,
)


Это делается для того чтобы иметь возможность когда нужно эту зависимость подменить. Например подсовывать моки для тестирования.
Но вообще можно и просто chrome или window.chrome вызвать, если вы не паритесь по поводу подмен и вообще слежением за зависимостями. Главное объяснить тайпскрипту что это валидное имя. Ну т.е. доустановить типы.

Я могу ошибиться в мелочах, т.к. не проверял, но правильный способ в общих чертах описал.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы