Даже после года опыта Web Dev, расширение браузера было для меня полный черный ящик, когда я впервые начал строить Netsips Отказ Несмотря на то, что в прошлом я пережил несколько очень жестких проектов, Netsips оказалась довольно задачей.
Идея заключалась в том, чтобы создать расширение Chrome, которое не только сохраняет закладки (которые включают в себя метаданные веб-страницы), но также надежно хранит ее в базе данных для отправки компиляции электронной почты для пользователей.
Большинство учебных пособий, которые я мог найти, не включал никаких бэкэндских операций, как я хочу, и официальная документация не все понятно. Однако, как говорится – хорошие вещи трудно прийти. Шаг за шагом и после нескольких итераций проб и ошибок – я наконец-то построил текущую версию Netsips, загруженных приличным набором функций и функциональных возможностей, вы не найдете их реализующимися на руководствах.
Давайте обсудим ключевые компоненты расширения браузера? Я помню, как я был озадачен, когда я впервые начал этот проект. Я даже не мог понять, какой код поставить в какой файл и сделал полный беспорядок.
1) Всплывающее окно
{
...
"page_action": {
"default_popup": "popup.html"
},
...
}
Всплывание является наиболее узнаваемым компонентом в расширении браузера. Это также компонентные интерфейсы с пользователем чаще всего. По сути, это традиционная веб-страница, которая меньше в размере и загружается при нажатии на значок расширения. Всплывание не может взаимодействовать с веб-страницами напрямую и не может выполнять какие-либо фоновые действия. Это предназначено только для выполнения действий локальных к вашему расширению.
В случае Netsips всплывающее окно является интерфейсом, через который пользователь может сохранить закладки.
Из-за большинства браузеров, обеспечивающих соблюдение очень строгого CSP, встроенные скрипты не допускаются в HTML-файлы всплытия. Итак, вам лучше быть комфортно с слушателями событий перед запуском проекта плагина браузера.
2) Сценарий содержимого
...
"content_scripts": [
{
"js": ["contentScript.js"]
}
],
...
Это сценарий, который позволяет взаимодействовать с веб-страницами, которые в настоящее время открыты на браузерах пользователя. Вы можете получить данные, манипулировать веб-страницами и отправлять ответ на другие страницы в пакете расширения (всплывающие и фоновые сценарии) в виде сообщений. Скрипты контента зависят от разрешений, которые вы объявляете в своем файле манифеста и могут быть введены в программно или декларативно (когда расширение необходимо взаимодействовать с веб-страницами с определенным узором URL).
В Netsips сценарий содержимого делает получение метаданных (заголовок и URL) веб-страницы, которую вы намерены сохранить, нажав кнопку на всплывающем окне.
3) Фоновый скрипт
{
...
"background": {
"scripts": ["background.js"]
},
...
}
Как предполагает имя, этот скрипт всегда работает за кулисами, выполняя работу, независимо от содержимого и всплывающих скриптов. Вы можете использовать этот скрипт для инициализации баз данных, управлять между сеансами, проверять состояние входа в систему, переопределить вкладки, сделать контекстные меню и вызвать auths, чтобы назвать несколько. Фоновый скрипт аналогичен центральному контролю над вещами, происходящими в вашем расширении, и будет дополнительно утверждать себя так, как вы решите делать более сложные операции со своим плагином.
Бонус – Местное хранение
{
...
"permissions": [
"storage"
],
...
}
Как разработчик, эффективно управляя государством, ваше приложение между сессиями является проблемой. LocalStorage API всегда там, но его ограничения (только строковые данные и синхронный характер) подавляют его простоту. Chrome Storage API – отличная альтернатива, поскольку оно обеспечивает асинхронный обработчик данных, обеспечивает операции чтения/записи на типах данных, отличных от строки, и может синхронизировать данные между устройствами пользователей, если они включены. Обучение для реализации API Chrome Local Storage API не является выбором, а необходимость, когда вы строите расширение Chrome.
Плагины браузера являются забавными вещами для создания и даже несмотря на то, что они не получают жужжание, которую они заслуживают, их удобство для использования безразлично. Если вы тот, кому браузер заменил свой рабочий стол на рабочий стол, вы должны полностью проверить веб-магазины для прохладных плагинов, которые улучшит вашу производительность (хороший старт будет Netsips : 3).
Спасибо за чтение!
Оригинал: “https://dev.to/sayan11/how-chrome-extensions-work-54bo”