Mem-build Aplikasi dengan AngularJS

Panduan ini membantu Anda mulai membuat Aplikasi Chrome dengan framework MVC AngularJS. Kepada menggambarkan Angular beraksi, kita akan mereferensikan aplikasi aktual yang dibangun menggunakan kerangka kerja, Pengupload Google Drive. Kode sumber tersedia di GitHub.

Tentang aplikasi

Pengupload Google Drive

Pengunggah Google Drive memungkinkan pengguna melihat dan berinteraksi dengan file yang disimpan di dan mengupload file baru menggunakan API Tarik lalu Lepas HTML. Ini adalah contoh yang bagus terkait pembuatan aplikasi yang berkomunikasi dengan salah satu API Google; dalam hal ini, Google API Drive.

Uploader menggunakan OAuth2 untuk mengakses data pengguna. chrome.identity API menangani pengambilan Token OAuth untuk pengguna yang sudah login, jadi kami sudah bekerja keras. Setelah kita berumur panjang token akses, aplikasi menggunakan Google Drive API untuk mengakses data pengguna.

Fitur utama yang digunakan aplikasi ini:

  • Deteksi otomatis AngularJS untuk CSP
  • Merender daftar file yang diambil dari Google Drive API
  • HTML5 Filesystem API untuk menyimpan ikon file secara offline
  • Tarik lalu Lepas HTML5 untuk mengimpor/mengupload file baru dari desktop
  • XHR2 untuk memuat gambar, lintas-domain
  • chrome.identity API untuk otorisasi OAuth
  • Frame tanpa chrome untuk menentukan tampilan dan nuansa menu navigasi aplikasi itu sendiri

Membuat manifes

Semua Aplikasi Chrome memerlukan file manifest.json yang berisi informasi yang perlu diluncurkan Chrome aplikasi. Manifes berisi metadata yang relevan dan mencantumkan izin khusus apa pun yang diperlukan aplikasi akan dijalankan.

Versi manifes Pengunggah yang disederhanakan terlihat seperti ini:

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

Bagian terpenting dari manifes ini adalah "oauth2" dan "izin" bagian.

"oauth2" mendefinisikan parameter yang dibutuhkan oleh OAuth2 untuk melakukan keajaibannya. Untuk membuat "client_id", ikuti petunjuk di Mendapatkan client id Anda. "Cakupan" buat daftar cakupan otorisasi di mana token OAuth akan valid (misalnya, API yang ingin akses).

"Izin" mencakup URL yang akan diakses aplikasi melalui XHR2. Awalan URL-nya diperlukan agar Chrome mengetahui permintaan lintas domain mana yang akan diizinkan.

Membuat halaman acara

Semua Aplikasi Chrome memerlukan skrip/halaman latar belakang untuk meluncurkan aplikasi dan merespons peristiwa sistem.

Dalam skrip background.js, Pengunggah Drive membuka jendela berukuran 500x600px ke halaman utama. Ini juga menentukan tinggi dan lebar minimum untuk jendela agar konten tidak terlalu padat:

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

Jendela dibuat sebagai jendela tanpa chrome (frame: 'none'). Secara {i>default<i}, jendela dirender dengan Bilah tutup/luaskan/minimalkan default OS:

Pengupload Google Drive tanpa bingkai

Uploader menggunakan frame: 'none' untuk merender jendela sebagai "slate kosong" dan membuat penutupan kustom di main.html:

Pengupload Google Drive dengan bingkai khusus

Seluruh area navigasi ini dikemas dalam sebuah