This page is part of the documentation for the Chrome Apps platform, which was deprecated in 2020. Chrome Apps in Kiosk Mode used by Enterprise and Education customers will no longer be supported after April 2027, marking their end of life. Additionally, all remaining Chrome Apps used in managed environments by Enterprise and Education organizations will reach their end of life in October 2028. Learn more about migrating your app.

Build Apps with AngularJS

This guide gets you started building Chrome Apps with the AngularJS MVC framework. To illustrate Angular in action, we'll be referencing an actual app built using the framework, the Google Drive Uploader. The source code is available on GitHub.

About the app

[画像:Google Drive Uploader]

The Google Drive Uploader allows users to quickly view and interact with files stored in their Google Drive account as well as upload new files using the HTML Drag and Drop APIs. It's a great example of building an app which talks to one of Google's APIs; in this case, the Google Drive API.

The Uploader uses OAuth2 to access the user's data. The chrome.identity API handles fetching an OAuth token for the logged-in user, so the hard work is done for us! Once we have a long-lived access token, the apps uses the Google Drive API to access the user's data.

Key features this app uses:

Creating the manifest

All Chrome Apps require a manifest.json file which contains the information Chrome needs to launch the app. The manifest contains relevant metadata and lists any special permissions the app needs to run.

A stripped down version of the Uploader's manifest looks like this:

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

The most important parts of this manifest are the "oauth2" and "permissions" sections.

The "oauth2" section defines the required parameters by OAuth2 to do its magic. To create a "client_id", follow the instructions in Get your client id. The "scopes" list the authorization scopes that the OAuth token will be valid for (for example, the APIs the app wants to access).

The "permissions" section includes URLs that the app will access via XHR2. The URL prefixes are required in order for Chrome to know which cross-domain requests to allow.

Creating the event page

All Chrome Apps require a background script/page to launch the app and respond to system events.

In its background.js script, Drive Uploader opens a 500x600px window to the main page. It also specifies a minimum height and width for the window so the content doesn't become too crunched:

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

The window is created as a chromeless window (frame: 'none'). By default, windows render with the OS's default close/expand/minimize bar:

[画像:Google Drive Uploader with no frame]

The Uploader uses frame: 'none' to render the window as a "blank slate" and creates a custom close button in main.html:

[画像:Google Drive Uploader with custom frame]

The entire navigational area is wrapped in a

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2012年11月16日 UTC.