| Index: chrome/common/extensions/docs/server2/templates/articles/first_app.html
|
| diff --git a/chrome/common/extensions/docs/server2/templates/articles/first_app.html b/chrome/common/extensions/docs/server2/templates/articles/first_app.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..75a30aedc0f1a88ca8f6162d20204d1e579402fb
|
| --- /dev/null
|
| +++ b/chrome/common/extensions/docs/server2/templates/articles/first_app.html
|
| @@ -0,0 +1,168 @@
|
| +<meta name="doc-family" content="apps">
|
| +<h1>Create Your First App</h1>
|
| +
|
| +
|
| +<p>
|
| +This tutorial walks you through creating your first packaged app.
|
| +Packaged apps are structured similarly to extensions
|
| +so current developers will recognize the manifest and packaging methods.
|
| +When you're done,
|
| +you'll just need to produce a zip file of your code and assets
|
| +in order to <a href="publish_app.html">publish</a> your app.
|
| +</p>
|
| +
|
| +<p>
|
| +A packaged app contains these components:
|
| +</p>
|
| +
|
| +<ul>
|
| + <li>The <strong>manifest</strong> tells Chrome about your app, what it is,
|
| + how to launch it and the extra permissions that it requires.</li>
|
| + <li>The <strong>background script</strong> is used to create the event page
|
| + responsible for managing the app life cycle.</li>
|
| + <li>All code must be included in the package. This includes HTML, JS, CSS
|
| + and Native Client modules.</li>
|
| + <li>All <strong>icons</strong> and other assets must be included
|
| + in the package as well.</li>
|
| +</ul>
|
| +
|
| +<p class="note">
|
| +<b>API Samples: </b>
|
| +Want to play with the code?
|
| +Check out the
|
| +<a href="https://github.com/GoogleChrome/chrome-app-samples/tree/master/hello-world">hello-world</a>
|
| +sample.
|
| +</p>
|
| +
|
| +<h2 id="one">Step 1: Create the manifest</h2>
|
| +
|
| +<p>
|
| +First create your <code>manifest.json</code> file
|
| +(<a href="manifest.html">Formats: Manifest Files</a>
|
| +describes this manifest in detail):
|
| +</p>
|
| +
|
| +<pre>
|
| +{
|
| + "name": "Hello World!",
|
| + "description": "My first packaged app.",
|
| + "manifest_version": 2,
|
| + "version": "0.1",
|
| + "app": {
|
| + "background": {
|
| + "scripts": ["background.js"]
|
| + }
|
| + },
|
| + "permissions": ["experimental", "app.window"],
|
| + "icons": { "16": "calculator-16.png", "128": "calculator-128.png" }
|
| +}
|
| +</pre>
|
| +
|
| +<p class="note">
|
| +<b>Important:</b>
|
| +Packaged apps <b>must</b> use
|
| +<a href="manifestVersion.html">manifest version 2</a>.
|
| +</p>
|
| +
|
| +<h2 id="two">Step 2: Create the background script</h2>
|
| +
|
| +<p>
|
| +Next create a new file called <code>background.js</code>
|
| +with the following content:
|
| +</p>
|
| +
|
| +<pre>
|
| +chrome.experimental.app.onLaunched.addListener(function() {
|
| + chrome.app.window.create('window.html', {
|
| + 'width': 400,
|
| + 'height': 500
|
| + });
|
| +});
|
| +</pre>
|
| +
|
| +<p>
|
| +In the above sample code,
|
| +the <a href="app_lifecycle.html#lifecycle">onLaunched event</a>
|
| +will be fired when the user starts the app.
|
| +It then immediately opens a window for the app of the specified width and height.
|
| +Your background script may contain additional listeners,
|
| +windows, post messages, and launch data,
|
| +all of which are used by the event page to manage the app.
|
| +</p>
|
| +
|
| +<h2 id="three">Step 3: Create a window page</h2>
|
| +
|
| +<p>
|
| +Create your <code>window.html</code> file:
|
| +</p>
|
| +
|
| +<pre>
|
| +<!DOCTYPE html>
|
| +<html>
|
| + <head>
|
| + </head>
|
| + <body>
|
| + <div>Hello, world!</div>
|
| + </body>
|
| +</html>
|
| +</pre>
|
| +
|
| +<h2 id="four">Step 4: Create the icons</h2>
|
| +
|
| +<p>
|
| +Copy these icons to your app folder:
|
| +</p>
|
| +
|
| +<ul>
|
| + <li><a href="{{static}}/images/calculator-16.png">calculator-16.png</a></li>
|
| + <li><a href="{{static}}/images/calculator-128.png">calculator-128.png</a></li>
|
| +</ul>
|
| +
|
| +<h2 id="five">Step 5: Launch your app</h2>
|
| +
|
| +<h3>Enable flags</h3>
|
| +
|
| +<p>
|
| +Many of the packaged apps APIs are still experimental,
|
| +so you should enable experimental APIs
|
| +so that you can try them out:
|
| +</p>
|
| +
|
| +<ul>
|
| + <li>Go to <b>chrome://flags</b>.</li>
|
| + <li>Find "Experimental Extension APIs",
|
| + and click its "Enable" link.</li>
|
| + <li>Restart Chrome.</li>
|
| +</ul>
|
| +
|
| +<h3>Load your app</h3>
|
| +
|
| +<p>
|
| +To load your app,
|
| +bring up the apps and extensions management page
|
| +by clicking the wrench icon
|
| +<img src="{{static}}/images/toolsmenu.gif" width="29" height="29" alt=""
|
| + style="margin-top:0" />
|
| +and choosing <b>Tools > Extensions</b>.
|
| +</p>
|
| +
|
| +<p>
|
| +Make sure the <b>Developer mode</b>
|
| +checkbox has been selected.
|
| +</p>
|
| +
|
| +<p>
|
| +Click the <b>Load unpacked extension</b> button,
|
| +navigate to your app's folder
|
| +and click <b>OK</b>.
|
| +</p>
|
| +
|
| +<h3>Open new tab and launch</h3>
|
| +
|
| +<p>
|
| +Once you've loaded your app,
|
| +open a New Tab page
|
| +and click on your new app icon.
|
| +</p>
|
| +
|
| +<p class="backtotop"><a href="#top">Back to top</a></p>
|
|
|