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 du framework, Programme de transfert Google Drive. 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 et d'interagir rapidement avec les fichiers stockés dans leur Google Drive et importer de nouveaux fichiers à l'aide des API HTML glisser-déposer. Il s'agit d'un excellent exemple de création d'une application qui communique avec l'une des API de Google ; dans ce cas, API Drive.

Le programme de transfert utilise OAuth2 pour accéder aux données de l'utilisateur. L'API chrome.identity gère la récupération d'une Jeton OAuth pour l'utilisateur connecté. Le plus dur est donc ! Une fois que nous aurons une longue vie les applications utilisent l'API Google Drive pour accéder aux données de l'utilisateur.

Principales fonctionnalités utilisées par cette application:

  • Détection automatique d'AngularJS pour CSP
  • Afficher la liste des 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 de nouveaux fichiers à partir du bureau
  • XHR2 pour charger des images, interdomaines
  • API chrome.identity pour l'autorisation OAuth
  • Des 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 nécessaires au lancement de Chrome l'application. Le fichier manifeste contient les métadonnées pertinentes et répertorie toutes les autorisations spéciales dont l'application a besoin pour exécuter.

Une version simplifiée du fichier manifeste de l'outil de mise en ligne 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 et les "autorisations" .

La classe "oauth2" définit les paramètres requis par OAuth2 pour faire son travail. Pour créer un "client_id", suivez les instructions de la section Obtenir votre ID client. Les "champs d'application" lister les champs d'application d'autorisation pour lesquels le jeton OAuth sera valide (par exemple, les API que l'application souhaite l'accès).

La section "Autorisations" inclut les URL auxquelles l'application accède via XHR2. Les préfixes d'URL nécessaire pour que Chrome sache quelles requêtes interdomaines autoriser.

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

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

Dans son script background.js, le programme de transfert Drive ouvre une fenêtre de 500 x 600 pixels vers la page principale. Il y a aussi spécifie une hauteur et une largeur minimales pour la fenêtre afin que le contenu ne soit pas trop écrasé:

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 le paramètre Barre de fermeture/d'expansion/de réduction par défaut du système d'exploitation:

Programme de transfert Google Drive sans cadre

L'outil de mise en ligne utilise frame: 'none' pour afficher la fenêtre en tant qu'écran vierge. puis crée une fermeture personnalisée dans main.html:

Programme de transfert Google Drive avec cadre personnalisé

L'ensemble de la zone de navigation est