Задать вопрос
@Ghoulll

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

Как в angular получить доступ к chrome.runtime... в компоненте?
  • Вопрос задан
  • 196 просмотров
Подписаться 2 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Javascript.ru
    Курс по Angular
    6 недель
    Далее
  • Skillfactory
    Профессия Frontend-разработчик PRO
    14 месяцев
    Далее
  • Компьютерная академия «TOP»
    Frontend разработка
    12 месяцев
    Далее
Решения вопроса 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 вызвать, если вы не паритесь по поводу подмен и вообще слежением за зависимостями. Главное объяснить тайпскрипту что это валидное имя. Ну т.е. доустановить типы.

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

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

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