Créer des applications avec AngularJS

Ce guide vous aide à créer des applications Chrome avec le framework MVC AngularJS. Pour illustrer le fonctionnement d'Angular, nous ferons référence à une application réelle créée à l'aide de ce framework : Google Drive Uploader. Le code source est disponible sur GitHub.

À propos de l'application

Programme de transfert Google Drive

Le programme de transfert Google Drive permet aux utilisateurs d'afficher rapidement les fichiers stockés dans leur compte Google Drive et d'interagir avec eux. Il permet également d'importer de nouveaux fichiers à l'aide des API HTML de glisser-déposer. Il s'agit d'un excellent exemple de création d'une application qui communique avec l'une des API Google. Dans le cas présent, l'API Google Drive.

L'utilisateur ayant mis en ligne la vidéo utilise OAuth2 pour accéder aux données de l'utilisateur. L'API chrome.identity gère la récupération d'un jeton OAuth pour l'utilisateur connecté, ce qui nous a permis de faire le gros du travail ! Une fois que nous disposons d'un jeton d'accès de longue durée, les applications accèdent aux données de l'utilisateur via l'API Google Drive.

Principales fonctionnalités utilisées par cette application:

  • Détection automatique d'AngularJS pour CSP
  • Afficher une liste de fichiers récupérés à partir de l'API Google Drive
  • API HTML5 Filesystem pour stocker les icônes de fichiers hors connexion
  • Glisser-déposer HTML5 pour importer/importer de nouveaux fichiers à partir du bureau
  • XHR2 pour charger des images, interdomaines
  • API chrome.identity pour l'autorisation OAuth
  • Cadres Chromeless pour définir l'apparence de la barre de navigation de l'application

Créer le fichier manifeste

Toutes les applications Chrome nécessitent un fichier manifest.json contenant les informations dont Chrome a besoin pour lancer l'application. Le fichier manifeste contient les métadonnées pertinentes et répertorie les autorisations spéciales nécessaires à l'exécution de l'application.

Une version simplifiée du fichier manifeste de l'utilisateur ayant mis en ligne la vidéo se présente comme suit:

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

Les parties les plus importantes de ce fichier manifeste sont les sections "oauth2" et "permissions".

La section "oauth2" définit les paramètres requis par OAuth2 pour faire ce qu'il faut. Pour créer un "client_id", suivez les instructions de la section Obtenir votre ID client. La section "Champs d'application" liste les champs d'application d'autorisation pour lesquels le jeton OAuth sera valide (par exemple, les API auxquelles l'application souhaite accéder).

La section "Autorisations" inclut les URL auxquelles l'application accède via XHR2. Ces préfixes sont nécessaires pour que Chrome puisse identifier les requêtes interdomaines à autoriser.

Créer la page de l'événement

Toutes les applications Chrome ont besoin d'une page ou d'un script en arrière-plan pour les lancer et répondre aux événements système.

Dans son script background.js, l'outil Drive Uploader ouvre une fenêtre de 500 x 600 pixels vers la page principale. Il spécifie également une hauteur et une largeur minimales pour la fenêtre afin que le contenu ne soit pas trop tronqué:

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 fenêtre est créée sous la forme d'une fenêtre Chromeless (cadre: "none"). Par défaut, les fenêtres s'affichent avec la barre de fermeture, de développement et de réduction par défaut du système d'exploitation:

Google Drive Uploader sans cadre

L'outil de mise en ligne utilise frame: 'none' pour afficher la fenêtre sous la forme d'un écran blanc et crée un bouton de fermeture personnalisé dans main.html:

Programme d'importation Google Drive avec cadre personnalisé

L'intégralité de la zone de navigation est délimitée