Создавайте приложения с помощью AngularJS

Это руководство поможет вам начать создавать приложения Chrome с помощью платформы AngularJS MVC. Чтобы проиллюстрировать Angular в действии, мы будем ссылаться на реальное приложение, созданное с использованием этой платформы — Google Drive Uploader. Исходный код доступен на GitHub.

О приложении

Загрузчик Google Диска

Google Drive Uploader позволяет пользователям быстро просматривать файлы, хранящиеся в их учетной записи Google Drive, и взаимодействовать с ними, а также загружать новые файлы с помощью API-интерфейсов HTML Drag and Drop . Это отличный пример создания приложения, взаимодействующего с одним из API Google ; в данном случае API Google Диска.

Программа загрузки использует OAuth2 для доступа к данным пользователя. API chrome.identity обрабатывает получение токена OAuth для вошедшего в систему пользователя, поэтому вся тяжелая работа сделана за нас! Как только у нас появится долгосрочный токен доступа, приложения будут использовать API Google Диска для доступа к данным пользователя.

Основные функции, которые использует это приложение:

  • Автоопределение AngularJS для CSP
  • Отображение списка файлов, полученных из API Google Диска.
  • API файловой системы HTML5 для хранения значков файлов в автономном режиме
  • HTML5 Drag and Drop для импорта/загрузки новых файлов с рабочего стола
  • XHR2 для загрузки изображений, междоменный
  • chrome.identity API для авторизации OAuth
  • Безрамочные рамки для определения внешнего вида навигационной панели приложения.

Создание манифеста

Для всех приложений Chrome требуется файл manifest.json , содержащий информацию, необходимую Chrome для запуска приложения. Манифест содержит соответствующие метаданные и перечисляет все специальные разрешения, необходимые приложению для запуска.

Урезанная версия манифеста Uploader выглядит так:

{
  "name": "Google Drive Uploader",
  "version": "0.0.1",
  "manifest_version": 2,
  "oauth2": {
    "client_id": "665859454684.apps.googleusercontent.com",
    "scopes": [
      "https://www.googleapis.com/auth/drive"
    ]
  },
 ...
  "permissions": [
    "https://docs.google.com/feeds/",
    "https://docs.googleusercontent.com/",
    "https://spreadsheets.google.com/feeds/",
    "https://ssl.gstatic.com/",
    "https://www.googleapis.com/"
  ]
}

Наиболее важными частями этого манифеста являются разделы «oauth2» и «permissions».

Раздел «oauth2» определяет необходимые параметры OAuth2 для творения чудес. Чтобы создать «client_id», следуйте инструкциям в разделе «Получение идентификатора клиента» . В «областях» перечислены области авторизации, для которых будет действителен токен OAuth (например, API-интерфейсы, к которым приложение хочет получить доступ).

Раздел «разрешения» включает URL-адреса, к которым приложение будет получать доступ через XHR2. Префиксы URL-адресов необходимы для того, чтобы Chrome знал, какие междоменные запросы разрешать.

Создание страницы мероприятия

Всем приложениям Chrome требуется фоновый сценарий/страница для запуска приложения и реагирования на системные события.

В своем скрипте background.js Drive Uploader открывает окно размером 500x600 пикселей на главную страницу. Он также определяет минимальную высоту и ширину окна, чтобы содержимое не было слишком сжатым:

chrome.app.runtime.onLaunched.addListener(function(launchData) {
  chrome.app.window.create('../main.html', {
    id: "GDriveExample",
    bounds: {
      width: 500,
      height: 600
    },
    minWidth: 500,
    minHeight: 600,
    frame: 'none'
  });
});

Окно создается как окно без хромирования (фрейм: «нет»). По умолчанию окна визуализируются с помощью панели закрытия/развертывания/сворачивания операционной системы по умолчанию:

Загрузчик Google Диска без рамки

Программа загрузки использует frame: 'none' для отображения окна как «чистого листа» и создает пользовательскую кнопку закрытия в main.html :

Программа загрузки на Google Диск со специальной рамкой

Вся навигационная зона окружена