使用 AngularJS 构建应用

本指南将指导您使用 AngularJS MVC 框架构建 Chrome 应用。为了说明 Angular 的实际应用,我们将引用一个使用该框架构建的实际应用,即 Google Drive Uploader。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)。

“permissions”部分包含应用程序将通过 XHR2 访问的网址。必须使用网址前缀,以便 Chrome 知道要允许哪些跨网域请求。

创建活动页面

所有 Chrome 应用都需要后台脚本/页面才能启动应用并响应系统事件。

background.js 脚本中,云端硬盘上传器会打开一个 500x600 像素的窗口,转到主页面。它还指定了窗口的最小高度和宽度,以免内容过于拥挤:

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

该窗口会创建为无边框窗口(框架:“无”)。默认情况下,窗口会使用操作系统的默认关闭/展开/最小化栏呈现:

无框架的 Google 云端硬盘上传器

该上传器使用 frame: 'none' 将窗口呈现为“空白可选广告”,并在 main.html 中创建自定义“关闭”按钮:

带有自定义框架的 Google 云端硬盘上传器

整个导航区域都封装在