Apps mit AngularJS erstellen

Diese Anleitung hilft Ihnen beim Erstellen von Chrome-Apps mit dem AngularJS MVC-Framework. Bis Angular in Aktion veranschaulichen, beziehen wir uns auf eine App, die mit dem Framework, dem Google Drive Uploader. Der Quellcode ist auf GitHub verfügbar.

Die App

Google Drive-Uploader

Mit dem Google Drive Uploader können Nutzer die in ihren Google Drive-Konto an und laden Sie neue Dateien mithilfe der HTML Drag & Drop APIs hoch. Es ist ein gutes Beispiel für die Entwicklung einer App, die mit einer der APIs von Google kommuniziert In diesem Fall kann das Drive API

Der Uploader verwendet für den Zugriff auf die Daten des Nutzers OAuth2. Die chrome.identity API ermöglicht das Abrufen eines OAuth-Token für den angemeldeten Nutzer, damit die harte Arbeit für uns erledigt wird! Sobald wir eine lange Zugriffstoken verwendet, verwendet die App die Google Drive API für den Zugriff auf die Daten des Nutzers.

Wichtige Funktionen dieser App:

  • Automatische Erkennung von AngularJS für CSP
  • Eine Liste von Dateien rendern, die über die Google Drive API abgerufen wurden
  • HTML5 Filesystem API zum Offline-Speichern von Dateisymbolen
  • HTML5 Drag-and-drop zum Importieren/Hochladen neuer Dateien vom Desktop
  • XHR2 zum Laden von domainübergreifenden Bildern
  • chrome.identity API für die OAuth-Autorisierung
  • Chromeless Frames zur Definition des App-eigenen Designs der Navigationsleiste

Manifest erstellen

Für alle Chrome-Apps ist eine manifest.json-Datei mit den Informationen erforderlich, die Chrome zum Starten benötigt in der App. Das Manifest enthält relevante Metadaten und alle speziellen Berechtigungen, die die App benötigt ausführen.

Eine reduzierte Version des Uploader-Manifests sieht so aus:

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

Die wichtigsten Teile dieses Manifests sind "oauth2". und „Berechtigungen“ .

Die „oauth2“ definiert die erforderlichen Parameter von OAuth2. So erstellen Sie ein "client_id" verwenden, folgen Sie der Anleitung unter Client-ID abrufen. Die „Bereiche“ listen Sie die Autorisierungsbereiche, für die das OAuth-Token gültig ist (z. B. die APIs, für die die App Zugriff).

Die „Berechtigungen“ enthält URLs, auf die die App über XHR2 zugreift. Die URL-Präfixe sind erforderlich, damit Chrome weiß, welche domainübergreifenden Anfragen zugelassen werden.

Veranstaltungsseite erstellen

Alle Chrome-Apps erfordern ein Hintergrundskript bzw. eine Hintergrundseite, um die App zu starten und auf Systemereignisse zu reagieren.

Im zugehörigen Skript background.js öffnet der Drive Uploader ein 500 x 600 Pixel großes Fenster zur Hauptseite. Außerdem gibt eine Mindesthöhe und -breite für das Fenster an, damit der Inhalt nicht zu stark zusammengedrückt wird:

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

Das Fenster wird als Chromeless-Fenster erstellt (Frame: 'none'). Standardmäßig werden Fenster mit der Standardleiste des Betriebssystems zum Schließen/Maximieren/Minimieren:

Google Drive Uploader ohne Frame

Der Uploader verwendet frame: 'none', um das Fenster als „leeres Slate“ zu rendern. und erstellt einen benutzerdefinierten Schaltfläche in main.html:

Google Drive-Uploader mit benutzerdefiniertem Frame

Der gesamte Navigationsbereich ist von