Criar apps com o AngularJS

Este guia ajuda você a começar a criar apps do Chrome com a estrutura MVC AngularJS. Para ilustrar o Angular em ação, faremos referência a um aplicativo real criado usando a estrutura, o Aplicativo de upload do Google Drive. O código-fonte está disponível no GitHub.

Sobre o app

Aplicativo de upload do Google Drive

O Aplicativo de upload do Google Drive permite que os usuários visualizem e interajam rapidamente com arquivos armazenados em seus conta do Google Drive, bem como fazer o upload de novos arquivos usando as APIs HTML Arrastar e soltar. É um um ótimo exemplo de como criar um app que se comunica com uma das APIs do Google; Nesse caso, o Google a API Drive.

O aplicativo de envio usa OAuth2 para acessar os dados do usuário. A chrome.identity API processa a busca de um É o token OAuth do usuário conectado, então o trabalho é feito para nós! Assim que temos uma longa vida token de acesso, o aplicativo usa a API Google Drive para acessar os dados do usuário.

Principais recursos usados pelo app:

  • Detecção automática do AngularJS para CSP
  • Renderizar uma lista de arquivos buscados na API Google Drive
  • API HTML5 Filesystem para armazenar ícones de arquivos off-line
  • Arrastar e soltar HTML5 para importar/fazer upload de novos arquivos a partir da área de trabalho
  • XHR2 para carregar imagens, vários domínios
  • API chrome.identity para autorização OAuth
  • Frames sem cromo para definir a aparência da barra de navegação do app

Criar o manifesto

Todos os apps do Chrome exigem um arquivo manifest.json com as informações necessárias para a inicialização do Chrome o app. O manifesto contém metadados relevantes e lista todas as permissões especiais necessárias para o aplicativo correr.

Uma versão reduzida do manifesto do aplicativo de upload tem a seguinte aparência:

{
  "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/"
  ]
}

As partes mais importantes desse manifesto são os arquivos "oauth2" e "permissões" em outras seções.

A biblioteca "oauth2" define os parâmetros exigidos pelo OAuth2 para fazer sua mágica. Para criar um "client_id", siga as instruções em Conseguir seu ID de cliente. Os "escopos" Liste os escopos de autorização para os quais o token OAuth será válido (por exemplo, as APIs para as quais o aplicativo deseja acesso).

As "permissões" inclui URLs que o aplicativo acessará via XHR2. Os prefixos de URL são para que o Chrome saiba quais solicitações de vários domínios permitir.

Criar a página do evento

Todos os apps do Chrome exigem uma página/script em segundo plano para iniciar o app e responder a eventos do sistema.

No script background.js, o aplicativo de upload do Google Drive abre uma janela de 500 x 600 pixels na página principal. Ela também especifica uma altura e largura mínimas para a janela para que o conteúdo não fique muito refinado:

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'
  });
});

A janela é criada como uma janela chromeless (frame: 'none'). Por padrão, as janelas renderizam com a Barra padrão para fechar/expandir/minimizar o SO:

Aplicativo de upload do Google Drive sem frame

O usuário que fez o envio usa frame: 'none' para renderizar a janela como uma "folha em branco". e cria um fechamento personalizado em main.html:

Aplicativo de upload do Google Drive com frame personalizado

Toda a área de navegação está envolvida em um