使用 AngularJS 建構應用程式

本指南可協助您開始使用 AngularJS MVC 架構建構 Chrome 應用程式。為了說明 Angular 的運作原理,我們將參考使用 Google 雲端硬碟上傳工具 (也就是 Google 雲端硬碟上傳工具) 建構的實際應用程式。您可以在 GitHub 找到原始碼

關於應用程式

Google 雲端硬碟上傳工具

Google 雲端硬碟上傳工具可讓使用者快速查看儲存在 Google 雲端硬碟帳戶中的檔案並進行互動,以及使用 HTML 拖曳 API 上傳新檔案。這是建構應用程式的絕佳範例,能與其中一個 Google 的 API 進行通訊,在本例中為 Google Drive API。

上傳者會使用 OAuth2 存取使用者資料。chrome.identity API 為登入使用者擷取 OAuth 權杖時,可為您完成這項工作!我們擁有長效存取權杖後,應用程式會使用 Google Drive API 存取使用者資料。

這個應用程式使用的主要功能:

建立資訊清單

所有 Chrome 應用程式都需要 manifest.json 檔案,其中包含 Chrome 啟動應用程式所需的資訊。資訊清單包含相關中繼資料,並列出應用程式執行所需的任何特殊權限。

上傳者的精簡版本資訊清單如下所示:

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

這份資訊清單最重要的部分是「oauth2」和「權限」區段。

「oauth2」部分會定義 OAuth2 的必要參數,以執行神奇指令。如要建立「client_id」,請按照「取得用戶端 ID」一文中的指示操作。「範圍」會列出 OAuth 權杖的有效授權範圍 (例如應用程式想要存取的 API)。

「權限」部分包含應用程式會透過 XHR2 存取的網址。您必須輸入網址前置字串,Chrome 才能判斷允許的跨網域要求。

建立活動頁面

所有 Chrome 應用程式都需要背景指令碼/網頁來啟動應用程式及回應系統事件。

background.js 指令碼中,雲端硬碟上傳工具會開啟 500x600px 的視窗前往主頁面。也會指定視窗的最小高度和寬度,以免內容過於緊張:

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

該視窗會建立為無介面視窗 (頁框:「無」)。根據預設,視窗會以 OS 的預設關閉/展開/最小化列進行算繪:

Google 雲端硬碟上傳程式不加上外框

上傳工具會使用 frame: 'none' 將視窗算繪為「空白插入畫面」,並在 main.html 中建立自訂關閉按鈕:

含有自訂頁框的 Google 雲端硬碟上傳工具

整個導覽區域都會以