Crea apps con AngularJS

Con esta guía, podrás comenzar a compilar Apps de Chrome con el framework de MVC AngularJS. Para ilustrar Angular en acción, haremos referencia a una app real compilada con el framework, Google Drive Uploader. El código fuente está disponible en GitHub.

Acerca de la aplicación

Programa para subir archivos de Google Drive

Google Drive Uploader permite a los usuarios ver e interactuar rápidamente con los archivos almacenados en su cuenta de Google Drive, además de subir archivos nuevos con las APIs de arrastrar y soltar HTML. Es un excelente ejemplo de cómo compilar una app que se comunica con una de las APIs de Google; en este caso, la API de Google Drive.

Quien sube un video usa OAuth2 para acceder a los datos del usuario. La API de chrome.identity se encarga de recuperar un token OAuth para el usuario que accedió, por lo que nos encargamos de todo el trabajo. Una vez que tenemos un token de acceso de larga duración, las apps usan la API de Google Drive para acceder a los datos del usuario.

Funciones clave que usa esta app:

Cómo crear el manifiesto

Todas las apps de Chrome requieren un archivo manifest.json que contenga la información que Chrome necesita para iniciar la app. El manifiesto contiene metadatos relevantes y enumera los permisos especiales que necesita la app.

Una versión reducida del manifiesto de quien sube el video tiene el siguiente aspecto:

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

Las secciones más importantes de este manifiesto son las secciones "oauth2" y "permissions".

En la sección “oauth2”, se definen los parámetros que OAuth2 requiere para hacer su magia. Para crear un "client_id", sigue las instrucciones en Obtén tu ID de cliente. Los “permisos” enumeran los permisos de autorización para los que el token de OAuth será válido (por ejemplo, las API a las que la aplicación desea acceder).

La sección "permisos" incluye las URLs a las que la app accederá a través de XHR2. Los prefijos de URL son necesarios para que Chrome sepa qué solicitudes multidominio permitir.

Crea la página del evento

Todas las apps de Chrome requieren una página o secuencia de comandos en segundo plano para iniciar la app y responder a los eventos del sistema.

En la secuencia de comandos background.js, Drive Uploader abre una ventana de 500 x 600 px en la página principal. También especifica una altura y un ancho mínimos para la ventana a fin de que el contenido no quede demasiado comprimido:

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

La ventana se crea como una ventana sin bordes (marco: "none"). De forma predeterminada, las ventanas se renderizan con la barra predeterminada de cierre, expansión y minimización del SO:

Google Drive Uploader sin marco

Quien sube un video usa frame: 'none' para renderizar la ventana como una "cortinilla en blanco" y crea un botón de cierre personalizado en main.html:

Google Drive Uploader con marco personalizado

Toda el área de navegación está envuelta en