Создание “Отложено” Chrome расширение с современными веб-инструменты

Создание расширение для браузера Chrome является отличным способом, чтобы взять небольшой и полезный идею и распространить его на миллионы людей через веб-магазину Chrome.Эта статья проведет вас через процесс развития расширением Chrome с современными веб-инструментов и библиотек .

Все начинается с идеи.Шахта была сформирована в то время как читая интересную (и долго) статью о новых интерфейсных технологий.Я концентрировался на чтении статьи, когда вдруг моя жена позвонила мне, чтобы выгнать плохой ребенок голубя, что застрял на нашем балконе.Когда я, наконец, вернулся к статье, было уже слишком поздно — Мне пришлось идти на работу .

Чтобы сделать длинную историю короткой, я думал, что это было бы неплохо, чтобы создать расширение Chrome, который позволяет отмечать свой прогресс чтения в статьях, так что вы можете продолжать чтение их позже — нигде .

Markticle 1 ” является имя я выбрал для этого расширения.Я поделюсь здесь технологии, которые я использовал, чтобы развивать его.После прочтения этой статьи, вы будете иметь готовый к использованию “Сохранить для Позднее” -как расширения Chrome .

image01-preview-opt 2

До Knowledge

Мы собираемся использовать несколько интерфейсных технологий.В то время как вы можете узнать некоторые из них на лету, знание других требуется (выделены жирным шрифтом):

  • JQuery
  • AngularJS
  • Node.js
  • Grunt
  • Bower
  • Yeoman

Scaffolding

Давайте начнем с некоторой работой инфраструктуры .

Предполагая, что вы уже знакомы с npm __52 | | 3__8 (Node.js “менеджер пакетов), мы собираемся использовать YEOMAN генератор для создания базового расширение для Chrome .

Note: Если вы до сих пор не были Йомен установлен на вашем компьютере, начать после “ Получение Started __62 | | 4__8 ” учебник .

Открыть новую командную строку или окно терминала, и написать следующую команду:

npm install -g generator-chrome-extension

Это позволит установить генератор YEOMAN в Chrome для расширений на вашей машине .

Создайте новую папку в файловой системе:

mkdir my-extension

И выполните следующую команду, чтобы создать все файлы, которые вы должны будете приступить к разработке расширение:

yo chrome-extension

После выполнения этой команды, генератор будет просить вас, какие функции включить врасширение .

В нашем случае, Markticle должны сделать несколько вещей:

  1. Добавить иконку рядом с адресной строкой .
  2. Запуск на каждой странице, которая открывается пользователю .
  3. Запуск код в фоновом режиме для подключения текущую страницу с расширением для того, чтобы сохранить данные .

Для первого фильма, мы выберем “браузер” как действия пользовательского интерфейса.Чтобы включить расширение для работы на каждой веб-страницы, мы флажок “сценарии содержание».Наконец, для того, чтобы фоновые процессы для запуска, мы будем использовать background.js файл .

Note: Еще один способ создать расширение Chrome, чтобы использовать онлайн Extensionizr __18 | | 5__17 .Extensionizr это отличный инструмент, который поможет вам создать базовые расширения Chrome.Она имеет несколько вариантов конфигурации, все из которых могут быть включены с флажками.В конце концов, вы получите ZIP-файл, который включает в себя все файлы, которые вы должны будете начать работать на расширение.Недостатком является то, что вам нужно настроить Гранта и Бауэр вручную .

Папка Tree

Давайте посмотрим на сгенерированных файлов и папок мы есть сейчас .

  • app
  • test
  • bower.json
  • package.json
  • Gruntfile.js

Gruntfile.js, где мы настроим Грунт задач для обслуживания, здания, тестирования и упаковки наше расширение .

package.json и bower.json файлы Node.js и Бауэр JSON файлы, которые определяют зависимости наше расширение на сторонних плагинов и библиотек .

test Папка будет включать в себя все устройства и конца в конец испытаний для расширения.Наконец, app папка самое интересное, потому что это, где ядро ​​нашего расширения будет находиться .

После переназначения некоторые из папок и файлов, вот то, что наш app Папка будет выглядеть:

image06-preview-opt
  • icons
    • icon-16.png
    • icon-19.png
    • icon-38.png
    • icon-128.png
  • images
  • views
  • scripts
    • inject.js
    • background.js
  • styles
  • main.css
  • _locales
    • en
    • messages.json
  • index.html
  • manifest.json

Наиболее важный файл здесь manifest.json.Это на самом деле сердце расширения, и это определяет несколько вещей, в том числе:

  • Расположение каждого файла, используемого по расширению
  • Какой значок, чтобы представить, как кнопка “действия”,
  • Разрешений, которые нужны ваше расширение,
  • Имя расширения .

Вот пример того, что manifest.json Файл должен выглядеть следующим образом:

{
  "name": "Markticle",
  "version": "1.0.0",
  "manifest_version": 2,
  "icons": {
    "16": "icons/icon-16.png",
    "38": "icons/icon-38.png",
    "128": "icons/icon-128.png"
  },

  "default_locale": "en",
  "background": {
    "scripts": [
      "scripts/helpers/storage.helper.js",
      "scripts/background.js"
    ]
  },

  "browser_action": {
    "default_icon": "icons/icon-19.png",
    "default_popup": "index.html"
  }
}

Первый Flight

Теперь у нас есть основной расширение, ничего не делает.Тем не менее, просто чтобы убедиться, что все на месте и работаетправильно, давайте проверим расширение во время выполнения .

Открыть Chrome и написать это в адресной строке:

chrome://extensions

Эта страница отображает информацию о всех установленных расширений в вашем браузере .

“. Режим разработчика” в верхнем правом углу, вы увидите опцию для включения Нажмите это .

Теперь нажмите кнопку “Load распакованный расширение”, перейдите в папку, расширения вы создали, выберите app папки, и нажмите

image04-preview-opt 6

Теперь вы должны увидеть значок внутреннего абонента рядом с адресной строке .

image05-preview-opt

Установка Dependencies

Перед запуском приложения, мы должны установить некоторые зависимости плагинов Node.js.Мы сделаем это, запустив следующую команду:

npm install

Последнее, что мы должны сделать, прежде чем погрузиться в код настроен зависимостей сторонних библиотек, которые мы собираемся использовать.Мы делаем это в bower.json файла:

{
  "name": "Markticle",
  "version": "1.0.0",
    "dependencies": {
      "angular": "1.2.6",
      "jquery": "2.0.3",
      "normalize.scss": "3.0.0"
    },

  "devDependencies": {}
}

Я выбрал три библиотеки для этого проекта: AngularJS, JQuery и Normalize.css.Чтобы установить это, выполните следующую команду:

bower install

Development

Теперь, когда мы готовы начать разработку, давайте разделить нашу работу на две части .

Первая часть будет всплывающее окно, которое открывается при нажатии пользователем значка внутреннего абонента.Всплывающее окно Markticle будет представить список закладок (т.е. веб-сайтов), которые пользователь сохранил .

image07-preview-opt

Вторая часть соединяет действия пользователя к самой расширения.Каждый раз, когда пользователь выполняет определенное действие на странице, расширение должно сохранить URL и название текущей вкладке (так что мы знаем, что для отображения в всплывающем окне) .

Первая часть довольно проста.Мы будем использовать классическую AngularJS код развивать его .

Давайте начнем с добавления следующую структуру файла в app/scripts Папка .

  • scripts
    • controllers
      • main.controller.js
    • directives
      • main.directive.js
    • helpers
    • storage.helper.js
    • services
      • storage.service.js
    • app.js
    • inject.js
    • background.js

В app.js файла, мы добавим следующий код, который будет определять основной модуль в наше приложение:

angular.module('markticle', []);

Теперь давайте добавим некоторые основные код на index.html файла:

<!DOCTYPE HTML>
<html>
  <head>
    <link href="styles/main.css" rel="stylesheet">
  </head>
  <body ng-app="markticle">
    <div id="main_wrapper">Sample</div>
    
    <script src="bower_components/jquery/jquery.min.js">
    <script src="bower_components/angular/angular.min.js">

    
    <script src="scripts/app.js">
    <script src="scripts/controllers/main.controller.js">
    <script src="scripts/directives/main.directive.js">
  </body>
</html>

Что мы сделали здесь оченьпроста:

  • Определить глобальный модуль AngularJS имени markticle
  • Добавить один элемент DIV с текстом образца,
  • Включают список файлов сценариев, которые мы собираемся использовать .

Теперь давайте расширим DIV элемент, который мы создали .

<div id="main_wrapper" ng-controller="MainController">
  <header>
  <h1>My Marks</h1>
</header>
<section id="my_marks"></section>
</div>

Опять же, ничего особенного здесь — мы только что создали контроллер AngularJS имени MainController, и добавил некоторые header 87 ~ и | теги для предстоящего содержания .

В app/scripts/controllers/main.controller.js файл, давайте создадим новый контроллер AngularJS:

angular.module('mar ... 

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.