cordova-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mwbro...@apache.org
Subject svn commit: r1534721 [2/4] - in /cordova/site/public/docs/en: 2.9.0/ 3.0.0/ 3.1.0/ edge/
Date Tue, 22 Oct 2013 18:30:38 GMT
Modified: cordova/site/public/docs/en/edge/guide_appdev_whitelist_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_appdev_whitelist_index.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_appdev_whitelist_index.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_appdev_whitelist_index.md.html Tue Oct 22 18:30:36 2013
@@ -95,14 +95,12 @@
         <div id="subheader">
             <h1>Whitelist Guide</h1>
             <small><select><option value="Whitelist%2520Guide">Whitelist Guide</option>
-<option value="Whitelist%20Guide_overview">      - Overview</option>
-<option value="Whitelist%20Guide_specification">      - Specification</option>
-<option value="Whitelist%20Guide_syntax">      - Syntax</option>
-<option value="Whitelist%20Guide_android">      - Android</option>
-<option value="Whitelist%20Guide_blackberry_10">      - BlackBerry 10</option>
+<option value="Whitelist%20Guide_android_whitelisting">      - Android Whitelisting</option>
+<option value="Whitelist%20Guide_ios_whitelisting">      - iOS Whitelisting</option>
+<option value="Whitelist%20Guide_blackberry_10_whitelisting">      - BlackBerry 10 Whitelisting</option>
 <option value="Whitelist%20Guide_ios">      - iOS</option>
-<option value="Whitelist%20Guide_windows_phone_7_8">      - Windows Phone (7 &amp; 8)</option>
-<option value="Whitelist%20Guide_tizen">      - Tizen</option></select></small>
+<option value="Whitelist%20Guide_windows_phone_whitelisting">      - Windows Phone Whitelisting</option>
+<option value="Whitelist%20Guide_tizen_whitelisting">      - Tizen Whitelisting</option></select></small>
         </div>
 
         <div id="sidebar">
@@ -110,6 +108,7 @@
         <h1>Guides</h1>
 <ul>
 <li><a href="guide_overview_index.md.html#Overview">Overview</a></li>
+<li><a href="guide_support_index.md.html#Platform%20Support">Platform Support</a></li>
 <li><a href="guide_cli_index.md.html#The%20Command-line%20Interface">The Command-line Interface</a></li>
 <li><a href="guide_platforms_index.md.html#Platform%20Guides">Platform Guides</a></li>
 <li><a href="config_ref_index.md.html#The%20config.xml%20File">The config.xml File</a></li>
@@ -145,135 +144,143 @@
             <div id="content">
                 <h1><a name="Whitelist%20Guide">Whitelist Guide</a></h1>
 
-<h2>
-<a name="Whitelist%20Guide_overview">Overview</a>
-</h2>
-
-<p>Resource whitelisting is a security model that controls access to
-external network resources, such as <code>http://google.com</code>.  Apache Cordova's
-default security policy allows access to any resource on any site on the
-Internet. Before moving your application to production, you should review
-its whitelist and declare access to specific network domains and subdomains.</p>
-
-<h2>
-<a name="Whitelist%20Guide_specification">Specification</a>
-</h2>
-
-<p>Domain whitelisting lays the groundwork for the <a class="external" href="http://www.w3.org/TR/widgets-access/">W3C Widget Access</a> specification. In the Widget Access specification, the <code>&lt;access&gt;</code> element is used to declare access to specific network resources. Apache Cordova extends this concept to allow whitelisting of individual network resources (URLs). In the future, Apache Cordova will abstract the platform whitelisting implementations. However, for now each platform implements its own resource or domain whitelisting. The differences between platform implementations are described later in this document.</p>
-
-<p>The general format for whitelist entries follows the "<a class="external" href="http://developer.chrome.com/apps/match_patterns.html">match pattern</a>" specification for Google Chrome Packaged Apps. Resources are specified by URL, but an asterisk (*) character may be used as a "wildcard" in several places to indicate "any value may go here". Specific examples are shown below.</p>
+<p>Domain whitelisting is a security model that controls access to
+external domains over which you application has no control.  Cordova's
+default security policy allows access to any site. Before moving your
+application to production, you should formulate a whitelist and allow
+access to specific network domains and subdomains.</p>
+
+<p>Cordova adheres to the <a class="external" href="http://www.w3.org/TR/widgets-access/">W3C Widget Access</a> specification, which
+relies on the <code>&lt;access&gt;</code> element within the app's <code>config.xml</code> file to
+enable network access to specific domains. For projects that rely on
+the CLI workflow described in <a href="guide_cli_index.md.html#The%20Command-line%20Interface">The Command-line Interface</a>, this file is
+located in the project's top-level <code>www</code> directory. Otherwise for
+platform-specific development paths, locations are listed in the
+sections below. (See the various <a href="guide_platforms_index.md.html#Platform%20Guides">Platform Guides</a> for more information
+on each platform.)</p>
 
-<h2>
-<a name="Whitelist%20Guide_syntax">Syntax</a>
-</h2>
+<p>The following examples demonstrate whitelist syntax:</p>
 
-<p>Access to all resources at <a class="external" href="http://google.com">google.com</a>:</p>
-
-<pre class="prettyprint"><code>http://google.com/*
-</code></pre>
-
-<p>Access to all resources at the secure <a class="external" href="https://google.com">google.com</a> (<code>https://</code>):</p>
-
-<pre class="prettyprint"><code>https://google.com/*
-</code></pre>
-
-<p>Access to the specific subdomain <a class="external" href="http://maps.google.com">maps.google.com</a>:</p>
+<ul>
+<li>
+<p>Access to <a class="external" href="http://google.com">google.com</a>:</p>
 
-<pre class="prettyprint"><code>http://maps.google.com/*
+<pre class="prettyprint"><code>&lt;access origin="http://google.com" /&gt;
 </code></pre>
+</li>
+<li>
+<p>Access to the secure <a class="external" href="https://google.com">google.com</a> (<code>https://</code>):</p>
 
-<p>Access to all the subdomains on <a class="external" href="http://google.com">google.com</a> (e.g., <a class="external" href="http://mail.google.com">mail.google.com</a> and <a class="external" href="http://docs.google.com">docs.google.com</a>):</p>
-
-<pre class="prettyprint"><code>http://*.google.com/*
+<pre class="prettyprint"><code>&lt;access origin="https://google.com" /&gt;
 </code></pre>
+</li>
+<li>
+<p>Access to the subdomain <a class="external" href="http://maps.google.com">maps.google.com</a>:</p>
 
-<p>Access to all resources on <a class="external" href="http://www.google.com">www.google.com</a> under the "/mobile" path:</p>
-
-<pre class="prettyprint"><code>http://www.google.com/mobile/*
+<pre class="prettyprint"><code>&lt;access origin="http://maps.google.com" /&gt;
 </code></pre>
+</li>
+<li>
+<p>Access to all the subdomains on <a class="external" href="http://google.com">google.com</a>, for example
+<a class="external" href="http://mail.google.com">mail.google.com</a> and <a class="external" href="http://docs.google.com">docs.google.com</a>:</p>
 
-<p>Access to <a class="external" href="http://google.com">google.com</a> on any protocol (e.g., HTTP, HTTPS, FTP, etc):</p>
-
-<pre class="prettyprint"><code>*://google.com/*
+<pre class="prettyprint"><code>&lt;access origin="http://*.google.com" /&gt;
 </code></pre>
+</li>
+<li>
+<p>Access to <em>all</em> domains, for example, <a class="external" href="http://google.com">google.com</a> and
+<a class="external" href="http://developer.mozilla.org">developer.mozilla.org</a>:</p>
 
-<p>Access to all resouces on the Internet (e.g., <a class="external" href="http://google.com">google.com</a> and <a class="external" href="http://developer.mozilla.org">developer.mozilla.org</a>):</p>
-
-<pre class="prettyprint"><code>*
+<pre class="prettyprint"><code>&lt;access origin="*" /&gt;
 </code></pre>
 
+<p>This is the default value for newly created CLI projects.</p>
+</li>
+</ul>
 <h2>
-<a name="Whitelist%20Guide_android">Android</a>
+<a name="Whitelist%20Guide_android_whitelisting">Android Whitelisting</a>
 </h2>
 
-<h3>Details</h3>
-
-<p>The whitelisting rules are found in <code>res/xml/config.xml</code> and declared
-with the element <code>&lt;access origin="..." /&gt;</code>.</p>
+<p>Platform-specific whitelisting rules are found in
+<code>res/xml/config.xml</code>.</p>
 
-<p>Android fully supports whitelisting syntax.</p>
+<p><strong>NOTE:</strong> On Android 2.3 and before, domain whitelisting only works
+for <code>href</code> hyperlinks, not referenced resources such as images and
+scripts. Take steps to avoid scripts from being injected into the
+application.</p>
 
-<h3>Syntax</h3>
-
-<p>Access to <a class="external" href="http://google.com">google.com</a>:</p>
-
-<pre class="prettyprint"><code>&lt;access origin="http://google.com/*" /&gt;
-</code></pre>
+<p>Navigating to non-whitelisted domains via <code>href</code> hyperlink causes the
+page to open in the default browser rather than within the
+application.  (Compare this to iOS's behavior noted below.)</p>
 
 <h2>
-<a name="Whitelist%20Guide_blackberry_10">BlackBerry 10</a>
+<a name="Whitelist%20Guide_ios_whitelisting">iOS Whitelisting</a>
 </h2>
 
-<h3>Details</h3>
+<p>The platform's whitelisting rules are found in the named application
+directory's <code>config.xml</code> file.</p>
 
-<p>The whitelisting rules are found in <code>www/config.xml</code> and declared with 
-the element <code>&lt;access origin="..." /&gt;</code>.</p>
+<p>Origins specified without a protocol, such as <code>www.apache.org</code> rather
+than <code>http://www.apache.org</code>, default to all of the <code>http</code>, <code>https</code>,
+<code>ftp</code>, and <code>ftps</code> schemes.</p>
 
-<p>BlackBerry 10 handles wildcards differently than other platforms in two ways:</p>
+<p>Wildcards on the iOS platform are more flexible than in the <a class="external" href="http://www.w3.org/TR/widgets-access/">W3C
+Widget Access</a> specification.  For example, the following accesses
+all subdomains and top-level domains such as <code>.com</code> and <code>.net</code>:</p>
 
-<p>1) Content accessed by XMLHttpRequest must be declared explicity. origin="*" will
-   not be respected for this use case. Alternatively, all web security may be
-   disabled using a preference.</p>
+<pre class="prettyprint"><code>    &lt;access origin="*.google.*" /&gt;
+</code></pre>
 
-<p>2) subdomains="true" may be used in place of "*.domain"</p>
+<p>Unlike the Android platform noted above, navigating to non-whitelisted
+domains via <code>href</code> hyperlink on iOS prevents the page from opening at
+all.</p>
 
-<h3>Syntax</h3>
+<h2>
+<a name="Whitelist%20Guide_blackberry_10_whitelisting">BlackBerry 10 Whitelisting</a>
+</h2>
 
-<p>Access to <a class="external" href="http://google.com">google.com</a>:</p>
+<p>The whitelisting rules are found in <code>www/config.xml</code>.</p>
 
-<pre class="prettyprint"><code>&lt;access origin="http://google.com" subdomains="false" /&gt;
-</code></pre>
+<p>BlackBerry 10's use of wildcards differs from other platforms in two
+ways:</p>
 
-<p>Access to  <a class="external" href="http://maps.google.com">maps.google.com</a>:</p>
+<ul>
+<li>
+<p>Any content accessed by <code>XMLHttpRequest</code> must be declared
+explicity. Setting <code>origin="*"</code> does not work in this case.
+Alternatively, all web security may be disabled using the
+<code>WebSecurity</code> preference described in <a href="guide_platforms_blackberry10_config.md.html#BlackBerry%20Configuration">BlackBerry Configuration</a>:</p>
 
-<pre class="prettyprint"><code>&lt;access origin="http://maps.google.com" subdomains="false" /&gt;
+<pre class="prettyprint"><code>&lt;preference name="websecurity" value="disable" /&gt;
 </code></pre>
-
-<p>Access to all the subdomains on <a class="external" href="http://google.com">google.com</a>:</p>
+</li>
+<li>
+<p>As an alternative to setting <code>*.domain</code>, set an additional
+<code>subdomains</code> attribute to <code>true</code>. It should be set to <code>false</code> by
+default. For example, the following allows access to <code>google.com</code>,
+<code>maps.google.com</code>, and <code>docs.google.com</code>:</p>
 
 <pre class="prettyprint"><code>&lt;access origin="http://google.com" subdomains="true" /&gt;
 </code></pre>
 
-<p>Access to all domains, including <code>file://</code> protocol:</p>
+<p>The following narrows access to <code>google.com</code>:</p>
 
-<pre class="prettyprint"><code>&lt;access origin="*" subdomains="true" /&gt;
+<pre class="prettyprint"><code>&lt;access origin="http://google.com" subdomains="false" /&gt;
 </code></pre>
 
-<p>Disable all web security:</p>
+<p>Specify access to all domains, including the local <code>file://</code>
+protocol:</p>
 
-<pre class="prettyprint"><code>&lt;preference name="websecurity" value="disable" /&gt;
-</code></pre>
+<p><access origin="*" subdomains="true"></access></p>
+</li>
+</ul>
+<p>(For more information on support, see BlackBerry's documentation on the
+<a class="external" href="https://developer.blackberry.com/html5/documentation/ww_developing/Access_element_834677_11.html">access element</a>.)</p>
 
 <h2>
 <a name="Whitelist%20Guide_ios">iOS</a>
 </h2>
 
-<h3>Details</h3>
-
-<p>The whitelisting rules are found in <code>AppName/config.xml</code> and declared with the element <code>&lt;access origin="..." /&gt;</code>.</p>
-
-<p>iOS fully supports whitelisting syntax.</p>
-
 <h3>Changed in 3.1.0:</h3>
 
 <p>Prior to version 3.1.0, Cordova-iOS included some non-standard extensions to the domain whilelisting scheme supported by other Cordova platforms. As of 3.1.0, the iOS whitelist now conforms to the resource whitelist syntax described at the top of this document. If you upgrade from pre-3.1.0, and you were using these extensions, you may have to change your <code>config.xml</code> file in order to continue whitelisting the same set of resources as before.</p>
@@ -285,57 +292,22 @@ the element <code>&lt;access origin="...
 <li><p>"<code>http://apache.*</code>" (wildcard at end of domain): This would previously match all top-level-domains, including all possible two-letter TLDs (but not useful domains like .co.uk). Include a line for each TLD which you actually control, and need to whitelist.</p></li>
 <li><p>"<code>h*t*://ap*he.o*g</code>" (wildcards for random missing letters): These are no longer supported; change to include a line for each domain and protocol that you actually need to whitelist.</p></li>
 </ul>
-<h3>Syntax</h3>
-
-<p>Access to <a class="external" href="http://google.com">google.com</a>:</p>
-
-<pre class="prettyprint"><code>&lt;access origin="http://google.com/*" /&gt;
-</code></pre>
-
 <h2>
-<a name="Whitelist%20Guide_windows_phone_7_8">Windows Phone (7 &amp; 8)</a>
+<a name="Whitelist%20Guide_windows_phone_whitelisting">Windows Phone Whitelisting</a>
 </h2>
 
-<p>The whitelisting rules are found in <code>config.xml</code> and declared with the element <code>&lt;access origin="..." /&gt;</code>.</p>
-
-<h3>Syntax</h3>
-
-<p>Access to <a class="external" href="http://google.com">google.com</a>:</p>
-
-<pre class="prettyprint"><code>&lt;access origin="http://google.com" /&gt;
-</code></pre>
+<p>The whitelisting rules for Windows Phone 7 and 8 are found in the
+app's <code>config.xml</code> file.</p>
 
 <h2>
-<a name="Whitelist%20Guide_tizen">Tizen</a>
+<a name="Whitelist%20Guide_tizen_whitelisting">Tizen Whitelisting</a>
 </h2>
 
-<h3>Details</h3>
-
-<p>The application root directory's <code>config.xml</code> file specifies domain
-whitelisting rules, using the <code>&lt;access origin="..." /&gt;</code> element.
-For a complete reference, see the <a class="external" href="https://developer.tizen.org/help/topic/org.tizen.help.gs/Creating%20a%20Project.html?path=0_1_1_4#8814682_CreatingaProject-AccessingExternalNetworkResources">Tizen Accessing External Network Resources documentation</a>.</p>
-
-<h3>Syntax</h3>
-
-<p>Access to <a class="external" href="http://google.com">google.com</a>:</p>
-
-<pre class="prettyprint"><code>&lt;access origin="http://google.com" subdomains="false" /&gt;
-</code></pre>
-
-<p>Access to the secure <a class="external" href="https://google.com">google.com</a> (<code>https://</code>):</p>
-
-<pre class="prettyprint"><code>&lt;access origin="https://google.com" subdomains="false" /&gt;
-</code></pre>
-
-<p>Access to all the subdomains on <a class="external" href="http://google.com">google.com</a>:</p>
-
-<pre class="prettyprint"><code>&lt;access origin="http://google.com" subdomains="true" /&gt;
-</code></pre>
-
-<p>Access to all domains, including <code>file://</code> protocol:</p>
-
-<pre class="prettyprint"><code>&lt;access origin="*" subdomains="true" /&gt;
-</code></pre>
+<p>Whitelisting rules are found in the app's <code>config.xml</code> file. The
+platform relies on the same <code>subdomains</code> attribute as the BlackBerry
+platform.
+(For more information on support, see Tizen's documentation on the
+<a class="external" href="https://developer.tizen.org/help/index.jsp?topic=%2Forg.tizen.web.appprogramming%2Fhtml%2Fide_sdk_tools%2Fconfig_editor_w3celements.htm">access element</a>.)</p>
 
             </div>
         </div>

Modified: cordova/site/public/docs/en/edge/guide_cli_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_cli_index.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_cli_index.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_cli_index.md.html Tue Oct 22 18:30:36 2013
@@ -101,8 +101,11 @@
 <option value="The%20Command-line%20Interface_build_the_app">      - Build the App</option>
 <option value="The%20Command-line%20Interface_test_the_app_on_an_emulator_or_device">      - Test the App on an Emulator or Device
 </option>
-<option value="The%20Command-line%20Interface_add_features">      - Add Features</option>
+<option value="The%20Command-line%20Interface_add_plugin_features">      - Add Plugin Features</option>
+<option value="The%20Command-line%20Interface_advanced_plugin_options">      - Advanced Plugin Options</option>
 <option value="The%20Command-line%20Interface_customize_each_platform">      - Customize Each Platform</option>
+<option value="The%20Command-line%20Interface_help_commands">      - Help Commands</option>
+<option value="The%20Command-line%20Interface_updating_the_app">      - Updating the App</option>
 <option value="The%20Command-line%20Interface_updating_cordova">      - Updating Cordova</option></select></small>
         </div>
 
@@ -111,6 +114,7 @@
         <h1>Guides</h1>
 <ul>
 <li><a href="guide_overview_index.md.html#Overview">Overview</a></li>
+<li><a href="guide_support_index.md.html#Platform%20Support">Platform Support</a></li>
 <li><a href="guide_cli_index.md.html#The%20Command-line%20Interface">The Command-line Interface</a></li>
 <li><a href="guide_platforms_index.md.html#Platform%20Guides">Platform Guides</a></li>
 <li><a href="config_ref_index.md.html#The%20config.xml%20File">The config.xml File</a></li>
@@ -369,7 +373,7 @@ environmnent.
 See <a href="guide_platforms_index.md.html#Platform%20Guides">Platform Guides</a> for details on each platform's requirements.</p>
 
 <h2>
-<a name="The%20Command-line%20Interface_add_features">Add Features</a>
+<a name="The%20Command-line%20Interface_add_plugin_features">Add Plugin Features</a>
 </h2>
 
 <p>When you build and view a new project, the default application that
@@ -386,7 +390,10 @@ one of Cordova's basic device-level feat
 <!-- XREF
 discussed in the Application Development Guide and
 XREF -->
-detailed in the <a href="index.md.html#API%20Reference">API Reference</a>.</p>
+detailed in the <a href="index.md.html#API%20Reference">API Reference</a>. A list of these plugins, including additional plugins provided by the community, can be found at  <a class="external" href="http://plugins.cordova.io/">http://plugins.cordova.io/</a>. You can use the CLI to search for plugins from this registry:</p>
+
+<pre class="prettyprint"><code>    $ cordova plugin search &lt;term1 term2 term3&gt;
+</code></pre>
 
 <p>The <code>cordova plugin add</code> command requires you to specify the
 repository for the plugin code.  Here are examples of features you
@@ -478,7 +485,7 @@ currently installed plugins. Each displa
 the listing. For example, here is how you would remove support for a
 debug console from a release version:</p>
 
-<pre class="prettyprint"><code>    $ cordova plugin rm org.apache.cordova.console        
+<pre class="prettyprint"><code>    $ cordova plugin rm org.apache.cordova.console
     $ cordova plugin remove org.apache.cordova.console    # same
 </code></pre>
 
@@ -488,50 +495,53 @@ argument for each command:</p>
 <pre class="prettyprint"><code>    $ cordova plugin add org.apache.cordova.console org.apache.cordova.device
 </code></pre>
 
-<p>When adding a plugin, there are several options for specifying where
-the plugin should be fetched from. The examples above use a well-known
-registry (registry.cordova.io), and the plugin is specified by the id:</p>
+<h2>
+<a name="The%20Command-line%20Interface_advanced_plugin_options">Advanced Plugin Options</a>
+</h2>
+
+<p>When adding a plugin, several options allow you to specify from where
+to fetch the plugin. The examples above use a well-known
+<code>registry.cordova.io</code> registry, and the plugin is specified by the
+<code>id</code>:</p>
 
 <pre class="prettyprint"><code>    $ cordova plugin add org.apache.cordova.console
 </code></pre>
 
-<p>The id may also include the version number of the plugin, which can be
-specified following an <code>@</code> character. The version <code>latest</code> is an alias
-for the most recent version. For example:</p>
+<p>The <code>id</code> may also include the plugin's version number, appended after
+an <code>@</code> character. The <code>latest</code> version is an alias for the most recent
+version. For example:</p>
 
 <pre class="prettyprint"><code>    $ cordova plugin add org.apache.cordova.console@latest
     $ cordova plugin add org.apache.cordova.console@0.2.1
 </code></pre>
 
-<p>If your plugin is not registered at registry.cordova.io, but is located in
-a git repository, you may specify a url to the git repository:</p>
+<p>If the plugin is not registered at <code>registry.cordova.io</code> but is located in
+another git repository, you can specify an alternate URL:</p>
 
 <pre class="prettyprint"><code>    $ cordova plugin add https://github.com/apache/cordova-plugin-console.git
 </code></pre>
 
-<p>The git example above assumes that the plugin should be fetched from the
-end of the master branch. If you want the plugin to be fetched using a git-ref
-such as a tag or branch, that can be specified by appending it after a <code>#</code>
-character.</p>
+<p>The git example above fetches the plugin from the end of the master
+branch, but an alternate git-ref such as a tag or branch can be
+appended after a <code>#</code> character:</p>
 
 <pre class="prettyprint"><code>    $ cordova plugin add https://github.com/apache/cordova-plugin-console.git#r0.2.0
 </code></pre>
 
-<p>If the plugin (and its <code>plugin.xml</code> file) is in a subdirectory of the git
-repo instead of the root directory, you can specify the subdirectory in the
-git repo by using a <code>:</code> character (note that a <code>#</code> is still needed):</p>
+<p>If the plugin (and its <code>plugin.xml</code> file) is in a subdirectory within
+the git repo, you can specify it with a <code>:</code> character. Note that the
+<code>#</code> character is still needed:</p>
 
 <pre class="prettyprint"><code>    $ cordova plugin add https://github.com/someone/aplugin.git#:/my/sub/dir
 </code></pre>
 
-<p>You can also combine both the git-ref and the subdir:</p>
+<p>You can also combine both the git-ref and the subdirectory:</p>
 
 <pre class="prettyprint"><code>    $ cordova plugin add https://github.com/someone/aplugin.git#r0.0.1:/my/sub/dir
 </code></pre>
 
-<p>You can also add a plugin from your local filesystem. 
-As the parameter to the <code>add</code> command, specify the
-local directory where the <code>plugin.xml</code> file is located:</p>
+<p>Alternately, specify a local path to the plugin directory that
+contains the <code>plugin.xml</code> file:</p>
 
 <pre class="prettyprint"><code>    $ cordova plugin add ../my_plugin_dir
 </code></pre>
@@ -584,6 +594,38 @@ instead capture <code><a href="cordova_e
 button.</p>
 
 <h2>
+<a name="The%20Command-line%20Interface_help_commands">Help Commands</a>
+</h2>
+
+<p>If at any point you get stuck, Cordova has a couple global "help" commands.</p>
+
+<p>The first, <code>help</code> will print out a list of all available actions that Cordova can do</p>
+
+<pre class="prettyprint"><code>$ cordova help
+</code></pre>
+
+<p>The second, <code>info</code> will print out useful information, such as installed platforms, node.js version, etc.., that are helpful for submitting bug reports and getting help.  It will also create an info.txt file at the base of your project. <strong>Note: Currently iOS and Android platforms are output</strong></p>
+
+<pre class="prettyprint"><code>$ cordova info
+</code></pre>
+
+<h2>
+<a name="The%20Command-line%20Interface_updating_the_app">Updating the App</a>
+</h2>
+
+<p>When a new version of Cordova is released, you should update your 
+<code>cordova</code> utility by following the Updating Cordova section below.
+Once you have updated Cordova, you can update the Cordova resources that
+your project uses by typing:</p>
+
+<pre class="prettyprint"><code>    $ cordova platform update &lt;PLATFORM&gt;
+</code></pre>
+
+<p>This will replace the old cordova resources with new ones for the
+specified PLATFORM. You should do this for every platform that you
+are developing for. </p>
+
+<h2>
 <a name="The%20Command-line%20Interface_updating_cordova">Updating Cordova</a>
 </h2>
 

Modified: cordova/site/public/docs/en/edge/guide_hybrid_plugins_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_hybrid_plugins_index.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_hybrid_plugins_index.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_hybrid_plugins_index.md.html Tue Oct 22 18:30:36 2013
@@ -95,9 +95,11 @@
         <div id="subheader">
             <h1>Plugin Development Guide</h1>
             <small><select><option value="Plugin%2520Development%2520Guide">Plugin Development Guide</option>
-<option value="Plugin%20Development%20Guide_javascript">      - JavaScript</option>
-<option value="Plugin%20Development%20Guide_plugin_specification">      - Plugin Specification</option>
-<option value="Plugin%20Development%20Guide_native">      - Native</option>
+<option value="Plugin%20Development%20Guide_building_a_plugin">      - Building a Plugin</option>
+<option value="Plugin%20Development%20Guide_validating_a_plugin">      - Validating a Plugin</option>
+<option value="Plugin%20Development%20Guide_the_javascript_interface">      - The JavaScript Interface</option>
+<option value="Plugin%20Development%20Guide_sample_javascript">      - Sample JavaScript</option>
+<option value="Plugin%20Development%20Guide_native_interfaces">      - Native Interfaces</option>
 <option value="Plugin%20Development%20Guide_publishing_plugins">      - Publishing plugins</option></select></small>
         </div>
 
@@ -106,6 +108,7 @@
         <h1>Guides</h1>
 <ul>
 <li><a href="guide_overview_index.md.html#Overview">Overview</a></li>
+<li><a href="guide_support_index.md.html#Platform%20Support">Platform Support</a></li>
 <li><a href="guide_cli_index.md.html#The%20Command-line%20Interface">The Command-line Interface</a></li>
 <li><a href="guide_platforms_index.md.html#Platform%20Guides">Platform Guides</a></li>
 <li><a href="config_ref_index.md.html#The%20config.xml%20File">The config.xml File</a></li>
@@ -141,59 +144,148 @@
             <div id="content">
                 <h1><a name="Plugin%20Development%20Guide">Plugin Development Guide</a></h1>
 
-<p>A Cordova plugin bridges a bit of functionality between the WebView
-powering a Cordova application and the native platform the Cordova
-application is running on. Plugins are composed of a single JavaScript
-interface used across all platforms, and native implementations
-following platform-specific Plugin interfaces that the JavaScript
-calls into. All of the core Cordova APIs are implemented using this
-architecture.</p>
+<p>A <em>plugin</em> is a package of injected code that allows the Cordova webview within
+which your app renders to communicate with the native platform on
+which it runs.  Plugins provide access to device and platform
+functionality that is ordinarily unavailable to web-based apps.  All
+the main Cordova API features are implemented as plugins, and many
+others are available that enable features such as bar code scanners,
+NFC communication, or to tailor calendar interfaces.</p>
+
+<p>Plugins comprise a single JavaScript interface along with
+corresponding native code libraries for each supported platform.  This
+section steps through a simple <em>echo</em> plugin that passes a string from
+JavaScript to the native platform and back, one that you can use as a
+model to build far more complex features.  This section discusses the
+basic plugin structure and the outward-facing JavaScript interface.
+For each corresponding native interface, see the list at the end of
+this section.</p>
+
+<p>In addition to these instructions, when preparing to write a plugin it
+is best to look over
+<a class="external" href="https://github.com/apache/cordova-android/tree/master/framework/src/org/apache/cordova">existing plugins</a>
+for guidance.</p>
 
-<p>This guide steps the process of writing a simple Echo Plugin that
-passes a string from JavaScript and sends it into the native
-environment for the supported platforms. The native code then returns
-the same string back to the callbacks inside the plugin's JavaScript.</p>
+<h2>
+<a name="Plugin%20Development%20Guide_building_a_plugin">Building a Plugin</a>
+</h2>
+
+<p>Application developers use the CLI's <code>plugin add</code> command (discussed
+in <a href="guide_cli_index.md.html#The%20Command-line%20Interface">The Command-line Interface</a>) to apply a plugin to a project. The
+argument to that command is the URL for a <em>git</em> repository containing
+the plugin code.  This example implements Cordova's <a href="cordova_device_device.md.html#Device">Device</a> API:</p>
+
+<pre class="prettyprint"><code>    $ cordova plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
+</code></pre>
+
+<p>The plugin repository must feature a top-level <code>plugin.xml</code> manifest
+file. There are many ways to configure this file, details for which
+are available in the <a href="plugin_ref_spec.md.html#Plugin%20Specification">Plugin Specification</a>. This abbreviated version of
+the <code><a href="cordova_device_device.md.html#Device">Device</a></code> plugin provides a simple example to use as a model:</p>
+
+<pre class="prettyprint"><code>    &lt;?xml version="1.0" encoding="UTF-8"?&gt;
+    &lt;plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
+            id="org.apache.cordova.device" version="0.2.3"&gt;
+        &lt;name&gt;<a href="cordova_device_device.md.html#Device">Device</a>&lt;/name&gt;
+        &lt;description&gt;Cordova <a href="cordova_device_device.md.html#Device">Device</a> Plugin&lt;/description&gt;
+        &lt;license&gt;Apache 2.0&lt;/license&gt;
+        &lt;keywords&gt;cordova,device&lt;/keywords&gt;
+        &lt;js-module src="www/device.js" name="device"&gt;
+            &lt;clobbers target="device" /&gt;
+        &lt;/js-module&gt;
+        &lt;platform name="ios"&gt;
+            &lt;config-file target="config.xml" parent="/*"&gt;
+                &lt;feature name="<a href="cordova_device_device.md.html#Device">Device</a>"&gt;
+                    &lt;param name="ios-package" value="CDVDevice"/&gt;
+                &lt;/feature&gt;
+            &lt;/config-file&gt;
+            &lt;header-file src="src/ios/CDVDevice.h" /&gt;
+            &lt;source-file src="src/ios/CDVDevice.m" /&gt;
+        &lt;/platform&gt;
+    &lt;/plugin&gt;
+</code></pre>
 
-<p>This guide provides enough overview on which you can build to write
-more complex plugins.</p>
+<p>The top-level <code>plugin</code> tag's <code>id</code> attribute uses the same
+reverse-domain format to identify the plugin package as the apps to
+they're added.  The <code>js-module</code> tag specifies the path to the common
+JavaScript interface.  The <code>platform</code> tag specifies a corresponding
+set of native code, for the <code>ios</code> platform in this case.  The
+<code>config-file</code> tag encapsulates a <code>feature</code> tag that is injected into
+the platform-specific <code>config.xml</code> file to make the platform aware of
+the additional code library.  The <code>header-file</code> and <code>source-file</code> tags
+specify the path to the library's component files.</p>
 
 <h2>
-<a name="Plugin%20Development%20Guide_javascript">JavaScript</a>
+<a name="Plugin%20Development%20Guide_validating_a_plugin">Validating a Plugin</a>
 </h2>
 
-<p>The entry point for any plugin is JavaScript. The reason developers use
-Cordova is so they can use and write JavaScript, not Objective-C,
-not Java, not C#. The JavaScript interface for your plugin is the
-front-facing and arguably most important part of your Cordova plugin.</p>
+<p>You can use the <code>plugman</code> utility to check whether the plugin installs
+correctly for each platform.  Install <code>plugman</code> with the following
+<a class="external" href="http://nodejs.org/">node</a> command:</p>
 
-<p>You can structure your plugin's JavaScript however you like. The one
-thing you <em>must</em> use to communicate between the Cordova JavaScript
-and native environments is the <code>cordova.exec</code> function. Here is an example:</p>
+<pre class="prettyprint"><code>    $ npm install -g plugman
+</code></pre>
 
-<pre class="prettyprint"><code>    cordova.exec(function(winParam) {}, function(error) {}, "service",
-                 "action", ["firstArgument", "secondArgument", 42,
-                 false]);
+<p>You need an valid app source directory, such as the top-level <code>www</code>
+directory included in a default CLI-generated project as described in
+<a href="guide_cli_index.md.html#The%20Command-line%20Interface">The Command-line Interface</a>.  Make sure the app's <code>index.html</code> home
+page reference the name of the plugin's JavaScript interface, as if it
+were in the same source directory:</p>
+
+<pre class="prettyprint"><code>    &lt;script src="myplugin.js"&gt;&lt;/script&gt;
+</code></pre>
+
+<p>Then run a command such as the following to test whether iOS
+dependencies load properly:</p>
+
+<pre class="prettyprint"><code>    $ plugman -platform ios /path/to/my/project/www /path/to/my/plugin
 </code></pre>
 
-<p>The parameters are detailed below:</p>
+<p>For details on <code>plugman</code> options, see <a href="plugin_ref_plugman.md.html#Using%20Plugman%20to%20Manage%20Plugins">Using Plugman to Manage Plugins</a>.
+For information on how to actually <em>debug</em> plugins, see each
+platform's native interface listed at the bottom of this page.</p>
+
+<h2>
+<a name="Plugin%20Development%20Guide_the_javascript_interface">The JavaScript Interface</a>
+</h2>
+
+<p>The JavaScript provides the front-facing interface, making it perhaps
+the most important part of the plugin.  You can structure your
+plugin's JavaScript however you like, but you need to call
+<code>cordova.exec</code> to communicate with the native platform, using the
+following syntax:</p>
+
+<pre class="prettyprint"><code>    cordova.exec(function(winParam) {},
+                 function(error) {},
+                 "service",
+                 "action",
+                 ["firstArgument", "secondArgument", 42, false]);
+</code></pre>
+
+<p>Here is how each parameter works:</p>
 
 <ul>
-<li><p><code>function(winParam) {}</code>: Success function callback. Assuming your
-<code>exec</code> call completes successfully, this function is invoked
-(optionally with any parameters you pass back to it).</p></li>
-<li><p><code>function(error) {}</code>: Error function callback. If the operation does
-not complete successfully, this function is invoked (optionally with
-an error parameter).</p></li>
-<li><p><code>"service"</code>: The service name to call into on the native side. This
-is mapped to a native class, about which more information is
+<li><p><code>function(winParam) {}</code>: A success callback function. Assuming your
+<code>exec</code> call completes successfully, this function executes along
+with any parameters you pass to it.</p></li>
+<li><p><code>function(error) {}</code>: An error callback function. If the operation
+does not complete successfully, this function executes with an
+optional error parameter.</p></li>
+<li><p><code>"service"</code>: The service name to call on the native side. This
+corresponds to a native class, for which more information is
 available in the native guides listed below.</p></li>
-<li><p><code>"action"</code>: The action name to call into. This is picked up by the
-native class receiving the <code>exec</code> call, and, depending on the
-platform, essentially maps to a class's method.  The native guides
-listed below provide details.</p></li>
-<li><p><code>[/* arguments */]</code>: Arguments to pass into the native environment.</p></li>
+<li><p><code>"action"</code>: The action name to call on the native side. This
+generally corresponds to the native class method. See the native
+guides listed below.</p></li>
+<li><p><code>[/* arguments */]</code>: An array of arguments to pass into the native
+environment.</p></li>
 </ul>
-<h3>Echo Plugin JavaScript Example</h3>
+<h2>
+<a name="Plugin%20Development%20Guide_sample_javascript">Sample JavaScript</a>
+</h2>
+
+<p>This example shows one way to implement the plugin's JavaScript
+interface:</p>
 
 <pre class="prettyprint"><code>    window.echo = function(str, callback) {
         cordova.exec(callback, function(err) {
@@ -202,56 +294,41 @@ listed below provide details.</p></li>
     };
 </code></pre>
 
-<p>Let's dive into this. The plugin attaches itself to <code>window</code>,
-specifically to the <code>echo</code> function. Plugin users would then use it as
-follows:</p>
+<p>In this example, the plugin attaches itself to the <code>window</code> object as
+the <code>echo</code> function, which plugin users would call as follows:</p>
 
 <pre class="prettyprint"><code>    window.echo("echome", function(echoValue) {
         alert(echoValue == "echome"); // should alert true.
     });
 </code></pre>
 
-<p>First, let's take a look at the last three arguments to the <code>exec</code>
-function. We will be calling the <code>Echo</code> "service", requesting the <code>echo</code>
-"action", and passing an array of arguments containing the echo string,
-which is the first parameter into the <code>window.echo</code> function.</p>
+<p>Look at the last three arguments to the <code>cordova.exec</code> function. The
+first calls the <code>Echo</code> <em>service</em>, a class name. The second requests
+the <code>echo</code> <em>action</em>, a method within that class. The third is an array
+of arguments containing the echo string, which is the <code>window.echo</code>
+function's the first parameter.</p>
 
 <p>The success callback passed into <code>exec</code> is simply a reference to the
-callback function that <code>window.echo</code> takes. We do a bit more for the
-error callback: if the native side fires off the error callback, we
-simply invoke the success callback and pass into it a "default"
-string.</p>
-
-<h2>
-<a name="Plugin%20Development%20Guide_plugin_specification">Plugin Specification</a>
-</h2>
+callback function <code>window.echo</code> takes. If the native platform fires
+the error callback, it simply calls the success callback and passes it
+a default string.</p>
 
-<p>Cordova has a plugin specification available to enable automated
-installation of the plugin for Android, iOS, BlackBerry 10 and Windows
-Phone platforms. By structuring your plugin in a particular way and
-adding a <code>plugin.xml</code> manifest file, you can enable users to install
-your plugin via the command-line tooling.</p>
-
-<ul>
-<li><a href="plugin_ref_spec.md.html#Plugin%20Specification">Plugin Specification</a></li>
-</ul>
 <h2>
-<a name="Plugin%20Development%20Guide_native">Native</a>
+<a name="Plugin%20Development%20Guide_native_interfaces">Native Interfaces</a>
 </h2>
 
 <p>Once you define JavaScript for your plugin, you need to complement it
-with at least one native implementation. Details to do so for each
-platform are listed below.  These guides continue to build on the
-simple Echo Plugin example discussed above.</p>
+with at least one native implementation. Details for each platform are
+listed below, and each builds on the simple Echo Plugin example above:</p>
 
 <ul>
 <li><a href="guide_platforms_android_plugin.md.html#Android%20Plugins">Android Plugins</a></li>
+<li><a href="guide_platforms_ios_plugin.md.html#iOS%20Plugins">iOS Plugins</a></li>
 <li><a href="guide_platforms_blackberry_plugin.md.html#BlackBerry%20Plugins">BlackBerry Plugins</a></li>
 <li><a href="guide_platforms_blackberry10_plugin.md.html#BlackBerry%2010%20Plugins">BlackBerry 10 Plugins</a></li>
-<li><a href="guide_platforms_ios_plugin.md.html#iOS%20Plugins">iOS Plugins</a></li>
 <li><a href="guide_platforms_wp8_plugin.md.html#Windows%20Phone%20Plugins">Windows Phone Plugins</a></li>
 </ul>
-<p>The Tizen platform currently does not support plugins.</p>
+<p>The Tizen platform does not support plugins.</p>
 
 <h2>
 <a name="Plugin%20Development%20Guide_publishing_plugins">Publishing plugins</a>
@@ -267,7 +344,7 @@ $ plugman publish /path/to/your/plugin
 
 <p>That is it!</p>
 
-<p>Other registry-based commands are available and <code>plugman --help</code> will give you a list of what commands are available and how to use them.  </p>
+<p>Other registry-based commands are available and <code>plugman --help</code> will give you a list of what commands are available and how to use them.</p>
 
             </div>
         </div>

Modified: cordova/site/public/docs/en/edge/guide_hybrid_webviews_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_hybrid_webviews_index.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_hybrid_webviews_index.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_hybrid_webviews_index.md.html Tue Oct 22 18:30:36 2013
@@ -102,6 +102,7 @@
         <h1>Guides</h1>
 <ul>
 <li><a href="guide_overview_index.md.html#Overview">Overview</a></li>
+<li><a href="guide_support_index.md.html#Platform%20Support">Platform Support</a></li>
 <li><a href="guide_cli_index.md.html#The%20Command-line%20Interface">The Command-line Interface</a></li>
 <li><a href="guide_platforms_index.md.html#Platform%20Guides">Platform Guides</a></li>
 <li><a href="config_ref_index.md.html#The%20config.xml%20File">The config.xml File</a></li>
@@ -137,9 +138,16 @@
             <div id="content">
                 <h1><a name="Embedding%20WebViews">Embedding WebViews</a></h1>
 
-<blockquote>
-  <p>Implement the Cordova WebView in your own project.</p>
-</blockquote>
+<p>Cordova applications are ordinarily implemented as a browser-based
+<em>WebView</em> within the native mobile platform. This section shows how,
+for supporting platforms, to create your own WebView components that
+make full use of Cordova APIs. You can then deploy these Cordova
+application components along with native components in a hybrid
+application.</p>
+
+<p>To deploy a WebView, you will need to be familiar with each native
+programming environment. The following provides instructions for
+supported platforms:</p>
 
 <ul>
 <li><a href="guide_platforms_android_webview.md.html#Android%20WebViews">Android WebViews</a></li>

Modified: cordova/site/public/docs/en/edge/guide_overview_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_overview_index.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_overview_index.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_overview_index.md.html Tue Oct 22 18:30:36 2013
@@ -96,8 +96,7 @@
             <h1>Overview</h1>
             <small><select><option value="Overview">Overview</option>
 <option value="Overview_basic_components">      - Basic Components</option>
-<option value="Overview_development_paths">      - Development Paths</option>
-<option value="Overview_platform_support">      - Platform Support</option></select></small>
+<option value="Overview_development_paths">      - Development Paths</option></select></small>
         </div>
 
         <div id="sidebar">
@@ -105,6 +104,7 @@
         <h1>Guides</h1>
 <ul>
 <li><a href="guide_overview_index.md.html#Overview">Overview</a></li>
+<li><a href="guide_support_index.md.html#Platform%20Support">Platform Support</a></li>
 <li><a href="guide_cli_index.md.html#The%20Command-line%20Interface">The Command-line Interface</a></li>
 <li><a href="guide_platforms_index.md.html#Platform%20Guides">Platform Guides</a></li>
 <li><a href="config_ref_index.md.html#The%20config.xml%20File">The config.xml File</a></li>
@@ -207,7 +207,7 @@ modify.</p></li>
 additional project files required to compile within each SDK.  For
 this to work, you must install each targeted platform's SDK.
 (See the <a href="guide_platforms_index.md.html#Platform%20Guides">Platform Guides</a> for instructions.)
-As indicated in the Platform Support table below, you may need to
+As indicated in the <a href="guide_support_index.md.html#Platform%20Support">Platform Support</a> table, you may need to
 run the CLI on different operating systems depending on the targeted
 platform.</p></li>
 <li><p>For supporting platforms, the CLI can compile executible
@@ -230,265 +230,14 @@ XREF -->
 You may use the command-line utility to initially generate the app, or
 iteratively thereafter to feed updated code to SDK tools.  You may
 also build the app's configuration file yourself.
-<!-- XREF
-(See <a href="config_ref_index.md.html#The config.xml File">The config.xml File</a> for details.)
-XREF --></p>
+(See <a href="config_ref_index.md.html#The%20config.xml%20File">The config.xml File</a> for details.)</p>
 
 <!-- XREF
 To build projects on some platforms, you may need to apply digital signatures.
 See Distributing Applications for information on how to upload your app to various store portals.
 XREF -->
 
-<h2>
-<a name="Overview_platform_support">Platform Support</a>
-</h2>
-
-<p>The following shows the set of development tools and device APIs
-available for each mobile platform. (Column headers display the
-CLI's shorthand stubs.)</p>
-
-<!-- START HTML -->
-
-<table class="compat" width="100%">
-<thead><tr>
-<th>
-        </th>
-<th><tt>android</tt></th>
-        <th>
-<tt>blackberry</tt> (6)</th>
-        <th><tt>blackberry10</tt></th>
-        <th><tt>ios</tt></th>
-        <th>
-<tt>wp7</tt> (Windows<br>Phone 7)</th>
-        <th>
-<tt>wp8</tt> (Windows<br>Phone 8)</th>
-        <th>
-<tt>win8</tt><br>(Windows 8)</th>
-        <th><tt>firefoxos</tt></th>
-        <th><tt>tizen</tt></th>
-    </tr></thead>
-<tbody>
-<tr>
-<th><a href="guide_cli_index.md.html">cordova<br>CLI</a></th>
-        <td data-col="android" class="y">Mac, Windows, Linux</td>
-        <td data-col="blackberry" class="n">Mac, Windows</td>
-        <td data-col="blackberry10" class="y">Mac, Windows</td>
-        <td data-col="ios" class="y">Mac</td>
-        <td data-col="winphone7" class="y">Windows</td>
-        <td data-col="winphone8" class="y">Windows</td>
-        <td data-col="win8" class="n"></td>
-        <td data-col="tizen" class="n"></td>
-    </tr>
-<tr>
-<th><a href="guide_hybrid_webviews_index.md.html">Embedded<br>WebView</a></th>
-        <td data-col="android" class="y"><a href="guide_platforms_android_webview.md.html">(see details)</a></td>
-        <td data-col="blackberry" class="n"></td>
-        <td data-col="blackberry10" class="n"></td>
-        <td data-col="ios" class="y"><a href="guide_platforms_ios_webview.md.html">(see details)</a></td>
-        <td data-col="winphone7" class="n"></td>
-        <td data-col="winphone8" class="n"></td>
-        <td data-col="win8" class="n"></td>
-        <td data-col="tizen" class="n"></td>
-    </tr>
-<tr>
-<th><a href="guide_hybrid_plugins_index.md.html">Plug-in<br>Interface</a></th>
-        <td data-col="android" class="y"><a href="guide_guide_platforms_android_plugin.md.html">(see details)</a></td>
-        <td data-col="blackberry" class="y"><a href="guide_guide_platforms_blackberry_plugin.md.html">(see details)</a></td>
-        <td data-col="blackberry10" class="y"><a href="guide_guide_platforms_blackberry10_plugin.md.html">(see details)</a></td>
-        <td data-col="ios" class="y"><a href="guide_guide_platforms_ios_plugin.md.html">(see details)</a></td>
-        <td data-col="winphone7" class="y"><a href="guide_guide_platforms_wp8_plugin.md.html">(see details)</a></td>
-        <td data-col="winphone8" class="y"></td>
-        <td data-col="win8" class="n"></td>
-        <td data-col="tizen" class="n"></td>
-    </tr>
-<tr>
-<th></th>
-        <th colspan="20">Platform APIs</th>
-    </tr>
-<tr>
-<th><a href="cordova_accelerometer_accelerometer.md.html">Accelerometer</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="y"></td>
-        <td data-col="blackberry10" class="y"></td>
-        <td data-col="ios" class="y"></td>
-        <td data-col="winphone7" class="y"></td>
-        <td data-col="winphone8" class="y"></td>
-        <td data-col="win8" class="y"></td>
-        <td data-col="tizen" class="y"></td>
-    </tr>
-<tr>
-<th><a href="cordova_camera_camera.md.html">Camera</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="y"></td>
-        <td data-col="blackberry10" class="y"></td>
-        <td data-col="ios" class="y"></td>
-        <td data-col="winphone7" class="y"></td>
-        <td data-col="winphone8" class="y"></td>
-        <td data-col="win8" class="y"></td>
-        <td data-col="tizen" class="y"></td>
-    </tr>
-<tr>
-<th><a href="cordova_media_capture_capture.md.html">Capture</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="y"></td>
-        <td data-col="blackberry10" class="y"></td>
-        <td data-col="ios" class="y"></td>
-        <td data-col="winphone7" class="y"></td>
-        <td data-col="winphone8" class="y"></td>
-        <td data-col="win8" class="n"></td>
-        <td data-col="tizen" class="n"></td>
-    </tr>
-<tr>
-<th><a href="cordova_compass_compass.md.html">Compass</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="n"></td>
-        <td data-col="blackberry10" class="y"></td>
-        <td data-col="ios" class="y">(3GS+)</td>
-        <td data-col="winphone7" class="y"></td>
-        <td data-col="winphone8" class="y"></td>
-        <td data-col="win8" class="y"></td>
-        <td data-col="tizen" class="y"></td>
-    </tr>
-<tr>
-<th><a href="cordova_connection_connection.md.html">Connection</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="y"></td>
-        <td data-col="blackberry10" class="y"></td>
-        <td data-col="ios" class="y"></td>
-        <td data-col="winphone7" class="y"></td>
-        <td data-col="winphone8" class="y"></td>
-        <td data-col="win8" class="y"></td>
-        <td data-col="tizen" class="y"></td>
-    </tr>
-<tr>
-<th><a href="cordova_contacts_contacts.md.html">Contacts</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="y"></td>
-        <td data-col="blackberry10" class="y"></td>
-        <td data-col="ios" class="y"></td>
-        <td data-col="winphone7" class="y"></td>
-        <td data-col="winphone8" class="y"></td>
-        <td data-col="win8" class="y"></td>
-        <td data-col="tizen" class="n"></td>
-    </tr>
-<tr>
-<th><a href="cordova_device_device.md.html">Device</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="y"></td>
-        <td data-col="blackberry10" class="y"></td>
-        <td data-col="ios" class="y"></td>
-        <td data-col="winphone7" class="y"></td>
-        <td data-col="winphone8" class="y"></td>
-        <td data-col="win8" class="y"></td>
-        <td data-col="tizen" class="y"></td>
-    </tr>
-<tr>
-<th><a href="cordova_events_events.md.html">Events</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="y"></td>
-        <td data-col="blackberry10" class="y"></td>
-        <td data-col="ios" class="y"></td>
-        <td data-col="winphone7" class="y"></td>
-        <td data-col="winphone8" class="y"></td>
-        <td data-col="win8" class="y"></td>
-        <td data-col="tizen" class="y"></td>
-    </tr>
-<tr>
-<th><a href="cordova_file_file.md.html">File</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="y"></td>
-        <td data-col="blackberry10" class="y"></td>
-        <td data-col="ios" class="y"></td>
-        <td data-col="winphone7" class="p">no <a href="cordova_file_file.md.html#FileTransfer">FileTransfer</a>
-</td>
-        <td data-col="winphone8" class="p">no <a href="cordova_file_file.md.html#FileTransfer">FileTransfer</a>
-</td>
-        <td data-col="win8" class="y"></td>
-        <td data-col="tizen" class="n"></td>
-    </tr>
-<tr>
-<th><a href="cordova_geolocation_geolocation.md.html">Geolocation</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="y"></td>
-        <td data-col="blackberry10" class="y"></td>
-        <td data-col="ios" class="y"></td>
-        <td data-col="winphone7" class="y"></td>
-        <td data-col="winphone8" class="y"></td>
-        <td data-col="win8" class="y"></td>
-        <td data-col="tizen" class="y"></td>
-    </tr>
-<tr>
-<th><a href="cordova_globalization_globalization.md.html">Globalization</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="y"></td>
-        <td data-col="blackberry10" class="n"></td>
-        <td data-col="ios" class="y"></td>
-        <td data-col="winphone7" class="n"></td>
-        <td data-col="winphone8" class="y"></td>
-        <td data-col="win8" class="n"></td>
-        <td data-col="tizen" class="n"></td>
-    </tr>
-<tr>
-<th><a href="cordova_inappbrowser_inappbrowser.md.html">InAppBrowser</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="y"></td>
-        <td data-col="blackberry10" class="y"></td>
-        <td data-col="ios" class="y"></td>
-        <td data-col="winphone7" class="y"></td>
-        <td data-col="winphone8" class="y"></td>
-        <td data-col="win8" class="n"></td>
-        <td data-col="tizen" class="n"></td>
-    </tr>
-<tr>
-<th><a href="cordova_media_media.md.html">Media</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="n"></td>
-        <td data-col="blackberry10" class="y"></td>
-        <td data-col="ios" class="y"></td>
-        <td data-col="winphone7" class="y"></td>
-        <td data-col="winphone8" class="y"></td>
-        <td data-col="win8" class="y"></td>
-        <td data-col="tizen" class="y"></td>
-    </tr>
-<tr>
-<th><a href="cordova_notification_notification.md.html">Notification</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="y"></td>
-        <td data-col="blackberry10" class="y"></td>
-        <td data-col="ios" class="y"></td>
-        <td data-col="winphone7" class="y"></td>
-        <td data-col="winphone8" class="y"></td>
-        <td data-col="win8" class="y"></td>
-        <td data-col="tizen" class="y"></td>
-    </tr>
-<tr>
-<th><a href="cordova_splashscreen_splashscreen.md.html">Splashscreen</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="n"></td>
-        <td data-col="blackberry10" class="y"></td>
-        <td data-col="ios" class="y"></td>
-        <td data-col="winphone7" class="y"></td>
-        <td data-col="winphone8" class="y"></td>
-        <td data-col="win8" class="y"></td>
-        <td data-col="tizen" class="n"></td>
-    </tr>
-<tr>
-<th><a href="cordova_storage_storage.md.html">Storage</a></th>
-        <td data-col="android" class="y"></td>
-        <td data-col="blackberry" class="y"></td>
-        <td data-col="blackberry10" class="y"></td>
-        <td data-col="ios" class="y"></td>
-        <td data-col="winphone7" class="p">
-<a href="cordova_storage_storage.md.html#localStorage">localStorage</a> only</td>
-        <td data-col="winphone8" class="p">
-<a href="cordova_storage_storage.md.html#localStorage">localStorage</a> only</td>
-        <td data-col="win8" class="y"></td>
-        <td data-col="tizen" class="y"></td>
-    </tr>
-</tbody>
-</table>
-<!-- END HTML -->
-</div>
+            </div>
         </div>
 
         <!-- Functionality and Syntax Highlighting -->

Modified: cordova/site/public/docs/en/edge/guide_platforms_android_config.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_android_config.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_android_config.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_android_config.md.html Tue Oct 22 18:30:36 2013
@@ -102,6 +102,7 @@
         <h1>Guides</h1>
 <ul>
 <li><a href="guide_overview_index.md.html#Overview">Overview</a></li>
+<li><a href="guide_support_index.md.html#Platform%20Support">Platform Support</a></li>
 <li><a href="guide_cli_index.md.html#The%20Command-line%20Interface">The Command-line Interface</a></li>
 <li><a href="guide_platforms_index.md.html#Platform%20Guides">Platform Guides</a></li>
 <li><a href="config_ref_index.md.html#The%20config.xml%20File">The config.xml File</a></li>
@@ -152,29 +153,6 @@ event fires.</p>
 </code></pre>
 </li>
 <li>
-<p><code>ErrorUrl</code>: Specifies an error page that displays in response to
-standard HTTP errors in the 400-500 range. Place the specified file
-in the top-level directory containing the home page and other web
-assets.</p>
-
-<pre class="prettyprint"><code>&lt;preference name="ErrorUrl" value="error.html"/&gt;
-</code></pre>
-</li>
-<li>
-<p><code>LoadingDialog</code>: Display a native dialog when loading the app. The
-value's format is <em>Title, Message</em></p>
-
-<pre class="prettyprint"><code>&lt;preference name="LoadingDialog" value="Please wait, the app is loading"/&gt;
-</code></pre>
-</li>
-<li>
-<p><code>LoadingPageDialog</code>: Display a native dialog when loading sub-pages
-within an app. The value's format is <em>Title, Message</em></p>
-
-<pre class="prettyprint"><code>&lt;preference name="LoadingPageDialog" value="Please wait, the data is loading"/&gt;
-</code></pre>
-</li>
-<li>
 <p><code>LoadUrlTimeoutValue</code> (number, default is <code>20000</code>): When loading a
 page, the amount of time to wait before throwing a timeout error.
 This example specifies 10 seconds rather than 20:</p>
@@ -197,6 +175,10 @@ time the splash screen image displays.</
 <pre class="prettyprint"><code>&lt;preference name="SplashScreenDelay" value="10000"/&gt;
 </code></pre>
 </li>
+<li><p><code>InAppBrowserStorageEnabled</code> (boolean, defaults to <code>true</code>): Controls
+whether pages opened within an <a href="cordova_inappbrowser_inappbrowser.md.html#InAppBrowser">InAppBrowser</a> can access the same
+<a href="cordova_storage_storage.md.html#localStorage">localStorage</a> and WebSQL storage as pages opened with the default
+browser.</p></li>
 </ul>
 </div>
         </div>

Modified: cordova/site/public/docs/en/edge/guide_platforms_android_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_android_index.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_android_index.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_android_index.md.html Tue Oct 22 18:30:36 2013
@@ -108,6 +108,7 @@
         <h1>Guides</h1>
 <ul>
 <li><a href="guide_overview_index.md.html#Overview">Overview</a></li>
+<li><a href="guide_support_index.md.html#Platform%20Support">Platform Support</a></li>
 <li><a href="guide_cli_index.md.html#The%20Command-line%20Interface">The Command-line Interface</a></li>
 <li><a href="guide_platforms_index.md.html#Platform%20Guides">Platform Guides</a></li>
 <li><a href="config_ref_index.md.html#The%20config.xml%20File">The config.xml File</a></li>

Modified: cordova/site/public/docs/en/edge/guide_platforms_android_plugin.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_android_plugin.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_android_plugin.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_android_plugin.md.html Tue Oct 22 18:30:36 2013
@@ -97,9 +97,11 @@
             <small><select><option value="Android%2520Plugins">Android Plugins</option>
 <option value="Android%20Plugins_plugin_class_mapping">      - Plugin Class Mapping</option>
 <option value="Android%20Plugins_writing_an_android_java_plugin">      - Writing an Android Java Plugin</option>
-<option value="Android%20Plugins_debugging_plugins">      - Debugging Plugins</option>
-<option value="Android%20Plugins_common_pitfalls">      - Common Pitfalls</option>
-<option value="Android%20Plugins_use_the_source">      - Use the Source</option></select></small>
+<option value="Android%20Plugins_threading">      - Threading</option>
+<option value="Android%20Plugins_echo_android_plugin_example">      - Echo Android Plugin Example</option>
+<option value="Android%20Plugins_android_integration">      - Android Integration</option>
+<option value="Android%20Plugins_debugging_android_plugins">      - Debugging Android Plugins
+</option></select></small>
         </div>
 
         <div id="sidebar">
@@ -107,6 +109,7 @@
         <h1>Guides</h1>
 <ul>
 <li><a href="guide_overview_index.md.html#Overview">Overview</a></li>
+<li><a href="guide_support_index.md.html#Platform%20Support">Platform Support</a></li>
 <li><a href="guide_cli_index.md.html#The%20Command-line%20Interface">The Command-line Interface</a></li>
 <li><a href="guide_platforms_index.md.html#Platform%20Guides">Platform Guides</a></li>
 <li><a href="config_ref_index.md.html#The%20config.xml%20File">The config.xml File</a></li>
@@ -142,208 +145,225 @@
             <div id="content">
                 <h1><a name="Android%20Plugins">Android Plugins</a></h1>
 
-<p>Writing a plugin requires an understanding of the architecture of
-Cordova-Android. Cordova-Android consists of an Android WebView with
-hooks attached to it. These plugins are represented as class mappings
-in the <code>config.xml</code> file.</p>
-
-<p>A plugin consists of at least one Java class that extends the
-<code>CordovaPlugin</code> class. A plugin must override one of the <code>execute</code>
-methods from <code>CordovaPlugin</code>.  As best practice, the plugin should
-handle <code><a href="cordova_events_events.md.html#pause">pause</a></code> and <code><a href="cordova_events_events.md.html#resume">resume</a></code> events, and any message passing between
-plugins.  Plugins with long-running requests, background activity such
-as media playback, listeners, or internal state should implement the
-<code>onReset()</code> method as well. It executes when the <code>WebView</code> navigates to
-a new page or refreshes, which reloads the JavaScript.</p>
+<p>This section provides details for how to implement native plugin code
+on the Android platform. Before reading this, see Application Plugins
+for an overview of the plugin's structure and its common JavaScript
+interface. This section continues to demonstrate the sample <em>echo</em>
+plugin that communicates from the Cordova webview to the native
+platform and back.  For another sample, see also the comments in
+<a class="external" href="https://github.com/apache/cordova-android/blob/master/framework/src/org/apache/cordova/CordovaPlugin.java">CordovaPlugin.java</a>.</p>
+
+<p>Android plugins are based on Cordova-Android, which consists of an
+Android WebView with hooks attached to it.  Plugins are represented as
+class mappings in the <code>config.xml</code> file.  A plugin consists of at
+least one Java class that extends the <code>CordovaPlugin</code> class,
+overriding one of its <code>execute</code> methods. As best practice, the plugin
+should also handle <code><a href="cordova_events_events.md.html#pause">pause</a></code> and <code><a href="cordova_events_events.md.html#resume">resume</a></code> events, along with any message
+passing between plugins.  Plugins with long-running requests,
+background activity such as media playback, listeners, or internal
+state should implement the <code>onReset()</code> method as well. It executes
+when the <code>WebView</code> navigates to a new page or refreshes, which reloads
+the JavaScript.</p>
 
 <h2>
 <a name="Android%20Plugins_plugin_class_mapping">Plugin Class Mapping</a>
 </h2>
 
-<p>The JavaScript portion of a plugin always uses the <code>cordova.exec</code> method as follows:</p>
+<p>The plugin's JavaScript interface uses the <code>cordova.exec</code> method as
+follows:</p>
 
-<pre class="prettyprint"><code>exec(&lt;successFunction&gt;, &lt;failFunction&gt;, &lt;service&gt;, &lt;action&gt;, [&lt;args&gt;]);
+<pre class="prettyprint"><code>    exec(&lt;successFunction&gt;, &lt;failFunction&gt;, &lt;service&gt;, &lt;action&gt;, [&lt;args&gt;]);
 </code></pre>
 
 <p>This marshals a request from the WebView to the Android native side,
-more or less boiling down to calling the <code>action</code> method on the
-<code>service</code> class, with the arguments passed in the <code>args</code> Array.</p>
+effectively calling the <code>action</code> method on the <code>service</code> class, with
+additional arguments passed in the <code>args</code> array.</p>
 
-<p>Whether you distribute your plugin as Java file or as a JAR of its
-own, the plugin must be added to the <code>config.xml</code> file in your
-Cordova-Android application's <code>res/xml/</code> directory.</p>
-
-<pre class="prettyprint"><code>&lt;feature name="&lt;service_name&gt;"&gt;
-    &lt;param name="android-package" value="&lt;full_name_including_namespace&gt;" /&gt;
-&lt;/feature&gt;
+<p>Whether you distribute a plugin as Java file or as a <em>jar</em> file of its
+own, the plugin must be specified in your Cordova-Android
+application's <code>res/xml/config.xml</code> file. See Application Plugins for
+more information on how to use the <code>plugin.xml</code> file to inject this
+<code>feature</code> element:</p>
+
+<pre class="prettyprint"><code>    &lt;feature name="&lt;service_name&gt;"&gt;
+        &lt;param name="android-package" value="&lt;full_name_including_namespace&gt;" /&gt;
+    &lt;/feature&gt;
 </code></pre>
 
-<p>The service name should match the one used in the JavaScript <code>exec</code>
-call, and the value is the Java classes full name, including the
-namespace.  Otherwise the plugin may compile but still be unreachable
-by Cordova.</p>
+<p>The service name matches the one used in the JavaScript <code>exec</code> call.
+The value is the Java class's fully qualified namespace identifier.
+Otherwise, the plugin may compile but still be unavailable to Cordova.</p>
 
 <h2>
 <a name="Android%20Plugins_writing_an_android_java_plugin">Writing an Android Java Plugin</a>
 </h2>
 
-<p>JavaScript fires off a plugin request to the native side.  The Android
-Java plugin is mapped properly via the <code>config.xml</code> file.  So what
-does the final Android Java Plugin class look like?</p>
-
-<p>What gets dispatched to the plugin via JavaScript's <code>exec</code> function gets
-passed into the Plugin class's <code>execute</code> method. Most <code>execute</code>
+<p>A JavaScript call fires off a plugin request to the native side, and
+the correspoinding Java plugin is mapped properly in the <code>config.xml</code>
+file, but what does the final Android Java Plugin class look like?
+Whatever is dispatched to the plugin with JavaScript's <code>exec</code> function
+is passed into the plugin class's <code>execute</code> method. Most <code>execute</code>
 implementations look like this:</p>
 
-<pre class="prettyprint"><code>@Override
-public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
-    if ("beep".equals(action)) {
-        this.beep(args.getLong(0));
-        callbackContext.success();
-        return true;
+<pre class="prettyprint"><code>    @Override
+    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
+        if ("beep".equals(action)) {
+            this.beep(args.getLong(0));
+            callbackContext.success();
+            return true;
+        }
+        return false;  // Returning false results in a "MethodNotFound" error.
     }
-    return false;  // Returning false results in a "MethodNotFound" error.
-}
 </code></pre>
 
-<p>We compare the value of the <code>action</code> parameter, and dispatch the
-request off to a (private) method in the class, optionally passing
-some of the parameters to the method.</p>
+<p>The JavaScript <code>exec</code> function's <code>action</code> parameter corresponds to a
+private class method to dispatch with optional parameters.</p>
 
 <p>When catching exceptions and returning errors, it's important for the
 sake of clarity that errors returned to JavaScript match Java's
 exception names as much as possible.</p>
 
-<h3>Threading</h3>
-
-<p>JavaScript in the WebView does <em>not</em> run on the UI thread. It runs on
-the WebCore thread. The <code>execute</code> method also runs on the WebCore thread.</p>
-
-<p>If you need to interact with the UI, you should use the following:</p>
+<h2>
+<a name="Android%20Plugins_threading">Threading</a>
+</h2>
 
-<pre class="prettyprint"><code>@Override
-public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
-    if ("beep".equals(action)) {
-        final long duration = args.getLong(0);
-        cordova.getActivity().runOnUiThread(new Runnable() {
-            public void run() {
-                ...
-                callbackContext.success(); // Thread-safe.
-            }
-        });
-        return true;
+<p>The plugin's JavaScript does <em>not</em> run in the main thread of the
+<code>WebView</code> interface; instead, it runs on the the <code>WebCore</code> thread, as
+does the <code>execute</code> method.  If you need to interact with the user
+interface, you should use the following variation:</p>
+
+<pre class="prettyprint"><code>    @Override
+    public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
+        if ("beep".equals(action)) {
+            final long duration = args.getLong(0);
+            cordova.getActivity().runOnUiThread(new Runnable() {
+                public void run() {
+                    ...
+                    callbackContext.success(); // Thread-safe.
+                }
+            });
+            return true;
+        }
+        return false;
     }
-    return false;
-}
 </code></pre>
 
-<p>If you do not need to run on the UI thread, but do not want to block the WebCore thread:</p>
+<p>Use the following if you do not need to run on the main interface's
+thread, but do not want to block the <code>WebCore</code> thread either:</p>
 
-<pre class="prettyprint"><code>@Override
-public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
-    if ("beep".equals(action)) {
-        final long duration = args.getLong(0);
-        cordova.getThreadPool().execute(new Runnable() {
-            public void run() {
-                ...
-                callbackContext.success(); // Thread-safe.
-            }
-        });
-        return true;
+<pre class="prettyprint"><code>    @Override
+    public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
+        if ("beep".equals(action)) {
+            final long duration = args.getLong(0);
+            cordova.getThreadPool().execute(new Runnable() {
+                public void run() {
+                    ...
+                    callbackContext.success(); // Thread-safe.
+                }
+            });
+            return true;
+        }
+        return false;
     }
-    return false;
-}
 </code></pre>
 
-<h3>Echo Android Plugin Example</h3>
-
-<p>Add the following to our <code>config.xml</code> file:</p>
+<h2>
+<a name="Android%20Plugins_echo_android_plugin_example">Echo Android Plugin Example</a>
+</h2>
 
-<pre class="prettyprint"><code>&lt;feature name="Echo"&gt;
-    &lt;param name="android-package" value="org.apache.cordova.plugin.Echo" /&gt;
-&lt;/feature&gt;
+<p>To match the JavaScript interface's <em>echo</em> feature described in
+Application Plugins, use the <code>plugin.xml</code> to inject a <code>feature</code>
+specification to the local platform's <code>config.xml</code> file:</p>
+
+<pre class="prettyprint"><code>    &lt;platform name="android"&gt;
+        &lt;config-file target="config.xml" parent="/*"&gt;
+            &lt;feature name="Echo"&gt;
+                &lt;param name="android-package" value="org.apache.cordova.plugin.Echo"/&gt;
+            &lt;/feature&gt;
+        &lt;/config-file&gt;
+    &lt;/platform&gt;
 </code></pre>
 
-<p>Then add the following file to
-<code>src/org/apache/cordova/plugin/Echo.java</code> inside our Cordova-Android
-application:</p>
-
-<pre class="prettyprint"><code>package org.apache.cordova.plugin;
-
-import org.apache.cordova.CordovaPlugin;
-import org.apache.cordova.CallbackContext;
+<p>Then add the following to the
+<code>src/org/apache/cordova/plugin/Echo.java</code> file:</p>
 
-import org.json.JSONArray;
-import org.json.JSONException;
-import org.json.JSONObject;
+<pre class="prettyprint"><code>    package org.apache.cordova.plugin;
 
-/**
- * This class echoes a string called from JavaScript.
- */
-public class Echo extends CordovaPlugin {
+    import org.apache.cordova.CordovaPlugin;
+    import org.apache.cordova.CallbackContext;
 
-    @Override
-    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
-        if (action.equals("echo")) {
-            String message = args.getString(0);
-            this.echo(message, callbackContext);
-            return true;
+    import org.json.JSONArray;
+    import org.json.JSONException;
+    import org.json.JSONObject;
+
+    /**
+     * This class echoes a string called from JavaScript.
+     */
+    public class Echo extends CordovaPlugin {
+
+        @Override
+        public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
+            if (action.equals("echo")) {
+                String message = args.getString(0);
+                this.echo(message, callbackContext);
+                return true;
+            }
+            return false;
         }
-        return false;
-    }
 
-    private void echo(String message, CallbackContext callbackContext) {
-        if (message != null &amp;&amp; message.length() &gt; 0) {
-            callbackContext.success(message);
-        } else {
-            callbackContext.error("Expected one non-empty string argument.");
+        private void echo(String message, CallbackContext callbackContext) {
+            if (message != null &amp;&amp; message.length() &gt; 0) {
+                callbackContext.success(message);
+            } else {
+                callbackContext.error("Expected one non-empty string argument.");
+            }
         }
     }
-}
 </code></pre>
 
-<p>Let's take a look at the code. The necessary <code>imports</code> are at
-the top. Our class extends from <code>CordovaPlugin</code>. We override the
-execute() method in order to recieve messages from exec(). Our method
-first compares against <code>action</code>: this plugin only supports one action,
-the <code>echo</code> action. Any other action returns <code>false</code>, which results in an
-error of type <code>INVALID_ACTION</code>, which translates into an error
-callback invocation on the JavaScript side. Next, we grab the echo
-string using the <code>getString</code> method on our <code>args</code>, telling it we want
-to get the 0th parameter in the parameter array. We do a bit of
-parameter checking: make sure it is not <code>null</code>, and make sure it is
-not a zero-length string. If it is, we call <code>callbackContext.error()</code>
-(which, by now, you should know invokes the error callback). If all of
-those checks pass, then we call <code>callbackContext.success()</code> and pass
-in the <code>message</code> string we received as a parameter. This finally
-translates into a success callback invocation on the JavaScript
-side. It also passes the <code>message</code> parameter as a parameter into the
-JavaScript success callback function.</p>
+<p>The necessary imports at the top of the file extends the class from
+<code>CordovaPlugin</code>, whose <code>execute()</code> method it overrides to receive
+messages from <code>exec()</code>.  The <code>execute()</code> method first tests the value
+of <code>action</code>, for which in this case there is only one valid <code>echo</code>
+value.  Any other action returns <code>false</code> and results in an
+<code>INVALID_ACTION</code> error, which translates to an error callback invoked
+on the JavaScript side.</p>
+
+<p>Next, the method retrieves the echo string using the <code>args</code> object's
+<code>getString</code> method, specifying the first parameter passed to the
+method.  After the value is passed to a private <code>echo</code> method, it is
+parameter-checked to make sure it is not <code>null</code> or an empty string, in
+which case <code>callbackContext.error()</code> invokes JavaScript's error
+callback.  If the various checks pass, the <code>callbackContext.success()</code>
+passes the original <code>message</code> string back to JavaScript's success
+callback as a parameter.</p>
 
 <h2>
-<a name="Android%20Plugins_debugging_plugins">Debugging Plugins</a>
+<a name="Android%20Plugins_android_integration">Android Integration</a>
 </h2>
 
-<p>Eclipse can be used to debug an Android project, and the plugins can be debugged if the Java source is included in the project. Only the latest version of the Android Developer Tools is known to allow source code attachment to JAR dependencies, so this is not fully supported at this time.</p>
-
-<h2>
-<a name="Android%20Plugins_common_pitfalls">Common Pitfalls</a>
-</h2>
+<p>Android features an <code>Intent</code> system that allows processes to
+communicate with each other.  Plugins have access to a
+<code>CordovaInterface</code> object, which can access the Android <code>Activity</code>
+that runs the application.  This is the <code>Context</code> required to launch a
+new Android <code>Intent</code>.  The <code>CordovaInterface</code> allows plugins to start
+an <code>Activity</code> for a result, and to set the callback plugin for when
+the <code>Intent</code> returns to the application.</p>
+
+<p>As of Cordova 2.0, Plugins can no longer directly access the
+<code>Context</code>, and the legacy <code>ctx</code> member is deprecated. All <code>ctx</code>
+methods exist on the <code>Context</code>, so both <code>getContext()</code> and
+<code>getActivity()</code> can return the required object.</p>
 
-<ul>
-<li><p>Plugins have access to a <code>CordovaInterface</code> object. This object has access to the Android <code>Activity</code> that is running the application. This is the <code>Context</code> required to launch
-a new Android <code>Intent</code>. The <code>CordovaInterface</code> allows plugins to start an <code>Activity</code> for a result, and to set the callback plugin for when the <code>Intent</code> comes back to the application. This is important, since the
-<code>Intent</code>s system is how Android communicates between processes.</p></li>
-<li><p>Plugins do not have direct access to the <code>Context</code> as they have in the past. The legacy <code>ctx</code> member is deprecated, and will be removed six months after 2.0 is released. All of <code>ctx</code> methods exist on the <code>Context</code>, so both <code>getContext()</code> and <code>getActivity()</code> are capable of returning the proper object required.</p></li>
-</ul>
 <h2>
-<a name="Android%20Plugins_use_the_source">Use the Source</a>
+<a name="Android%20Plugins_debugging_android_plugins">Debugging Android Plugins
+</a>
 </h2>
 
-<p>One of the best ways to prepare yourself to write your own plugin is to
-<a class="external" href="https://github.com/search?q=%40apache+cordova-plugin">look over existing plugins</a>.</p>
-
-<p>You should also read through the comments in <a class="external" href="https://github.com/apache/cordova-android/blob/master/framework/src/org/apache/cordova/CordovaPlugin.java">CordovaPlugin.java</a>.</p>
+<p>Eclipse allows you to debug plugins as Java source included in the
+project.  Only the latest version of the Android Developer Tools
+allows you to attach source code to <em>JAR</em> dependencies, so this
+feature is not yet fully supported.</p>
 
             </div>
         </div>

Modified: cordova/site/public/docs/en/edge/guide_platforms_android_tools.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_android_tools.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_android_tools.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_android_tools.md.html Tue Oct 22 18:30:36 2013
@@ -106,6 +106,7 @@
         <h1>Guides</h1>
 <ul>
 <li><a href="guide_overview_index.md.html#Overview">Overview</a></li>
+<li><a href="guide_support_index.md.html#Platform%20Support">Platform Support</a></li>
 <li><a href="guide_cli_index.md.html#The%20Command-line%20Interface">The Command-line Interface</a></li>
 <li><a href="guide_platforms_index.md.html#Platform%20Guides">Platform Guides</a></li>
 <li><a href="config_ref_index.md.html#The%20config.xml%20File">The config.xml File</a></li>
@@ -152,6 +153,10 @@ target. The tools described here are typ
 top-level <code>bin</code> directory, otherwise consult the <strong>README</strong> file for
 more detailed directions.</p>
 
+<p>For information on the low-level command-line interface that enables
+plugins, see <a href="plugin_ref_plugman.md.html#Using%20Plugman%20to%20Manage%20Plugins">Using Plugman to Manage Plugins</a>. See Application Plugins
+for an overview.</p>
+
 <h2>
 <a name="Android%20Command-line%20Tools_create_a_project">Create a project</a>
 </h2>

Modified: cordova/site/public/docs/en/edge/guide_platforms_android_upgrading.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_android_upgrading.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_android_upgrading.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_android_upgrading.md.html Tue Oct 22 18:30:36 2013
@@ -128,6 +128,7 @@
         <h1>Guides</h1>
 <ul>
 <li><a href="guide_overview_index.md.html#Overview">Overview</a></li>
+<li><a href="guide_support_index.md.html#Platform%20Support">Platform Support</a></li>
 <li><a href="guide_cli_index.md.html#The%20Command-line%20Interface">The Command-line Interface</a></li>
 <li><a href="guide_platforms_index.md.html#Platform%20Guides">Platform Guides</a></li>
 <li><a href="config_ref_index.md.html#The%20config.xml%20File">The config.xml File</a></li>



Mime
View raw message