cordova-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mwbro...@apache.org
Subject svn commit: r1534721 [3/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_platforms_android_webview.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_android_webview.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_android_webview.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_android_webview.md.html Tue Oct 22 18:30:36 2013
@@ -94,9 +94,7 @@
         </div>
         <div id="subheader">
             <h1>Android WebViews</h1>
-            <small><select><option value="Android%2520WebViews">Android WebViews</option>
-<option value="Android%20WebViews_prerequisites">      - Prerequisites</option>
-<option value="Android%20WebViews_guide_to_using_cordovawebview_in_an_android_project">      - Guide to using CordovaWebView in an Android Project</option></select></small>
+            <small></small>
         </div>
 
         <div id="sidebar">
@@ -104,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>
@@ -139,36 +138,30 @@
             <div id="content">
                 <h1><a name="Android%20WebViews">Android WebViews</a></h1>
 
-<p>Beginning in Cordova 1.9, with the assistance of the
-<code>CordovaActivity</code>, you can use Cordova as a component in a larger
-native Android application. Android refers to this component as the
-<code>CordovaWebView</code>. New Cordova-based applications from 1.9 onwards use
-the <code>CordovaWebView</code> as its main view, regardless of whether the
-legacy <code>CordovaActivity</code> approach is used.</p>
-
-<p>If you're unfamiliar with Android application development, please read
-the <a href="guide_platforms_android_index.md.html#Android%20Platform%20Guide">Android Platform Guide</a> to developing a Cordova Application before
-attempting to include a WebView. It's not the main way to author
-Android Cordova applications. These instructions are currently manual,
-but may be eventually be automated.</p>
-
-<h2>
-<a name="Android%20WebViews_prerequisites">Prerequisites</a>
-</h2>
-
-<ul>
-<li><p>Cordova 1.9 or greater</p></li>
-<li><p>Android SDK updated to the latest SDK</p></li>
-</ul>
-<h2>
-<a name="Android%20WebViews_guide_to_using_cordovawebview_in_an_android_project">Guide to using CordovaWebView in an Android Project</a>
-</h2>
+<p>This section shows how to embed a Cordova-enabled WebView component
+within a larger Android application. For details on how these
+components can communicate with each other, see Application Plugins.</p>
+
+<p>If you're unfamiliar with Android, you should first familiarize
+yourself with the <a href="guide_platforms_android_index.md.html#Android%20Platform%20Guide">Android Platform Guide</a> and have the latest Android
+SDK installed before you attempt the more unusual development option
+of embedding a WebView.  Starting with Cordova 1.9, the Android
+platform relies on a <code>CordovaWebView</code> component, which builds on a
+legacy <code>CordovaActivity</code> component that pre-dates the 1.9 release.</p>
 
 <ol>
-<li><p><code>cd</code> into <code>/framework</code> and run <code>ant jar</code> to build the cordova jar. It creates the .jar file formed as <code>cordova-x.x.x.jar</code> in the <code>/framework</code> directory.</p></li>
-<li><p>Copy the cordova jar into your Android project's <code>/libs</code> directory.</p></li>
+<li><p>To follow these instructions, make sure you have the latest Cordova
+distribution. Download it from
+<a class="external" href="http://cordova.apache.org">cordova.apache.org</a> and unzip its
+Android package.</p></li>
+<li><p>Navigate to the Android package's <code>/framework</code> directory and run
+<code>ant jar</code>. It creates the Cordova <code>.jar</code> file, formed as
+<code>/framework/cordova-x.x.x.jar</code>.</p></li>
+<li><p>Copy the <code>.jar</code> file into the Android project's <code>/libs</code> directory.</p></li>
 <li>
-<p>Edit your application's <code>main.xml</code> file (under <code>/res/xml</code>) to look like the following, with the <code>layout_height</code>, <code>layout_width</code> and <code>id</code> modified to suit your application:</p>
+<p>Add the following to the application's <code>/res/xml/main.xml</code> file,
+with the <code>layout_height</code>, <code>layout_width</code> and <code>id</code> modified to suit
+the application:</p>
 
 <pre class="prettyprint"><code>&lt;org.apache.cordova.CordovaWebView
     android:id="@+id/tutorialView"
@@ -177,7 +170,13 @@ but may be eventually be automated.</p>
 </code></pre>
 </li>
 <li>
-<p>Modify your activity so that it implements the <code>CordovaInterface</code>.  You should implement the included methods.  You may wish to copy them from <code>/framework/src/org/apache/cordova/CordovaActivity.java</code>, or implement them on your own.  The code fragment below shows a basic application that uses the interface. Note how the referenced view id matches the <code>id</code> attribute specified in the XML fragment shown above:</p>
+<p>Modify the activity so that it implements the <code>CordovaInterface</code>.
+It should implement the included methods.  You may wish to copy
+them from <code>/framework/src/org/apache/cordova/CordovaActivity.java</code>,
+or else implement them on your own.  The following code fragment
+shows a basic application that relies on the interface. Note how
+the referenced view id matches the <code>id</code> attribute specified in the
+XML fragment shown above:</p>
 
 <pre class="prettyprint"><code>public class CordovaViewTestActivity extends Activity implements CordovaInterface {
     CordovaWebView cwv;
@@ -192,64 +191,73 @@ but may be eventually be automated.</p>
     }
 </code></pre>
 </li>
-</ol>
-<p>If you use the camera, you should also implement this:</p>
+<li>
+<p>If the application needs to use the camera, implement the
+following:</p>
 
-<pre class="prettyprint"><code>    @Override
-    public void setActivityResultCallback(CordovaPlugin plugin) {
-        this.activityResultCallback = plugin;
-    }
-    /**
-     * Launch an activity for which you would like a result when it finished. When this activity exits,
-     * your onActivityResult() method is called.
-     *
-     * @param command           The command object
-     * @param intent            The intent to start
-     * @param requestCode       The request code that is passed to callback to identify the activity
-     */
-    public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) {
-        this.activityResultCallback = command;
-        this.activityResultKeepRunning = this.keepRunning;
-
-        // If multitasking turned on, then disable it for activities that return results
-        if (command != null) {
-            this.keepRunning = false;
-        }
-
-        // Start activity
-        super.startActivityForResult(intent, requestCode);
-    }   
+<pre class="prettyprint"><code>@Override
+public void setActivityResultCallback(CordovaPlugin plugin) {
+    this.activityResultCallback = plugin;
+}
+/**
+ * Launch an activity for which you would like a result when it finished. When this activity exits,
+ * your onActivityResult() method is called.
+ *
+ * @param command           The command object
+ * @param intent            The intent to start
+ * @param requestCode       The request code that is passed to callback to identify the activity
+ */
+public void startActivityForResult(CordovaPlugin command, Intent intent, int requestCode) {
+    this.activityResultCallback = command;
+    this.activityResultKeepRunning = this.keepRunning;
+
+
+<pre class="prettyprint"><code>// If multitasking turned on, then disable it for activities that return results
+if (command != null) {
+    this.keepRunning = false;
+}
 
-    @Override
-    /**
-     * Called when an activity you launched exits, giving you the requestCode you started it with,
-     * the resultCode it returned, and any additional data from it.
-     *
-     * @param requestCode       The request code originally supplied to startActivityForResult(),
-     *                          allowing you to identify who this result came from.
-     * @param resultCode        The integer result code returned by the child activity through its setResult().
-     * @param data              An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
-     */
-    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
-        super.onActivityResult(requestCode, resultCode, intent);
-        CordovaPlugin callback = this.activityResultCallback;
-        if (callback != null) {
-            callback.onActivityResult(requestCode, resultCode, intent);
-        }
-    }
+
+// Start activity
+super.startActivityForResult(intent, requestCode);
 </code></pre>
 
-<p>Finally, remember to add the thread pool, otherwise the plugins have no threads to run on:</p>
+}   
+
 
-<pre class="prettyprint"><code>    @Override
-    public ExecutorService getThreadPool() {
-        return threadPool;
+@Override
+/**
+ * Called when an activity you launched exits, giving you the requestCode you started it with,
+ * the resultCode it returned, and any additional data from it.
+ *
+ * @param requestCode       The request code originally supplied to startActivityForResult(),
+ *                          allowing you to identify who this result came from.
+ * @param resultCode        The integer result code returned by the child activity through its setResult().
+ * @param data              An Intent, which can return result data to the caller (various data can be attached to Intent "extras").
+ */
+protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
+    super.onActivityResult(requestCode, resultCode, intent);
+    CordovaPlugin callback = this.activityResultCallback;
+    if (callback != null) {
+        callback.onActivityResult(requestCode, resultCode, intent);
     }
+}
 </code></pre>
+</li>
+<li>
+<p>Finally, remember to add the thread pool, otherwise plugins
+have no threads on which to run:</p>
 
-<ol>
-<li><p>Copy your application's HTML and JavaScript files to your Android project's <code>/assets/www</code> directory.</p></li>
-<li><p>Copy <code>config.xml</code> from <code>/framework/res/xml</code> to your project's <code>/res/xml</code> directory.</p></li>
+<pre class="prettyprint"><code>@Override
+public ExecutorService getThreadPool() {
+    return threadPool;
+}
+</code></pre>
+</li>
+<li><p>Copy the application's HTML and JavaScript files to the Android
+project's <code>/assets/www</code> directory.</p></li>
+<li><p>Copy the <code>config.xml</code> file from <code>/framework/res/xml</code> to the
+project's <code>/res/xml</code> directory.</p></li>
 </ol>
 </div>
         </div>

Modified: cordova/site/public/docs/en/edge/guide_platforms_blackberry10_config.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_blackberry10_config.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_blackberry10_config.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_blackberry10_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>

Modified: cordova/site/public/docs/en/edge/guide_platforms_blackberry10_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_blackberry10_index.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_blackberry10_index.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_blackberry10_index.md.html Tue Oct 22 18:30:36 2013
@@ -111,6 +111,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_blackberry10_plugin.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_blackberry10_plugin.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_blackberry10_plugin.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_blackberry10_plugin.md.html Tue Oct 22 18:30:36 2013
@@ -95,10 +95,10 @@
         <div id="subheader">
             <h1>BlackBerry 10 Plugins</h1>
             <small><select><option value="BlackBerry%252010%2520Plugins">BlackBerry 10 Plugins</option>
-<option value="BlackBerry%2010%20Plugins_creating_the_native_part_of_your_plugin">      - Creating the native part of your plugin</option>
-<option value="BlackBerry%2010%20Plugins_creating_the_javascript_part_of_your_plugin">      - Creating the JavaScript part of your plugin</option>
-<option value="BlackBerry%2010%20Plugins_architecture_of_the_plugin">      - Architecture of the plugin</option>
-<option value="BlackBerry%2010%20Plugins_contents_of_the_plugin_xml_file">      - Contents of the plugin.xml file</option></select></small>
+<option value="BlackBerry%2010%20Plugins_creating_the_native_class">      - Creating the native class</option>
+<option value="BlackBerry%2010%20Plugins_creating_the_plugin_s_javascript">      - Creating the plugin's JavaScript</option>
+<option value="BlackBerry%2010%20Plugins_plugin_architecture">      - Plugin Architecture</option>
+<option value="BlackBerry%2010%20Plugins_the_plugin_xml_file">      - The plugin.xml file</option></select></small>
         </div>
 
         <div id="sidebar">
@@ -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>
@@ -141,170 +142,229 @@
             <div id="content">
                 <h1><a name="BlackBerry%2010%20Plugins">BlackBerry 10 Plugins</a></h1>
 
-<p>This is a continuation of the <a href="guide_hybrid_plugins_index.md.html#Plugin%20Development%20Guide">Plugin Development Guide</a> for Cordova. Once you have reviewed that content, now let's look at things we need to have the Echo plugin for the BlackBerry 10 platform. Recall that the Echo plugin basically returns whatever string a user provides to the <code>window.echo</code> function:</p>
+<p>This section provides details for how to implement native plugin code
+on the BlackBerry 10 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.</p>
 
-<pre class="prettyprint"><code>window.echo = function(str, callback) {
+<p>The Echo plugin basically returns whatever string the <code>window.echo</code>
+function sends from JavaScript:</p>
+
+<pre class="prettyprint"><code>    window.echo = function(str, callback) {
         cordova.exec(callback, function(err) {
             callback('Nothing to echo.');
         }, "Echo", "echo", [str]);
     };
 </code></pre>
 
-<p>A native BlackBerry 10 plugin for Cordova contains JavaScript code and may also contain native code. The Echo plugin example demonstrates how to invoke native functionality from JavaScript. The native and JavaScript code communicate with each other through a framework provided by JNEXT. Every plugin must also include a <code>plugin.xml</code> file.</p>
+<p>A Cordova plugin for BlackBerry 10 contains both JavaScript and native
+code, which communicate with each other through a framework provided
+by JNEXT. Every plugin must also include a <code>plugin.xml</code> file.</p>
 
 <h2>
-<a name="BlackBerry%2010%20Plugins_creating_the_native_part_of_your_plugin">Creating the native part of your plugin</a>
+<a name="BlackBerry%2010%20Plugins_creating_the_native_class">Creating the native class</a>
 </h2>
 
-<p>To create the native portion of your plugin, open the BlackBerry 10 NDK IDE and select <a href="cordova_file_file.md.html#File">File</a> &gt; New &gt; BlackBerry Project &gt; Native Extension &gt; BlackBerry WebWorks. Enter your desired project name / location and click finish.</p>
-
-<p>The project created by the IDE contains sample code for a memory plugin. You may replace or modify these files to include your own functionality.</p>
+<p>To create the native portion of your plugin, open the BlackBerry 10
+NDK IDE and select <strong><a href="cordova_file_file.md.html#File">File</a> → New → BlackBerry Project →
+Native Extension → BlackBerry WebWorks</strong>. Enter the desired
+project name and location, then press <strong>Finish</strong>.</p>
+
+<p>The project created by the IDE contains sample code for a memory
+plugin. You may replace or modify these files to implement your own
+functionality:</p>
 
 <ul>
 <li><p><code>*name*_js.hpp</code>: C++ header for the JNEXT code.</p></li>
 <li><p><code>*name*_js.cpp</code>: C++ code for JNEXT.</p></li>
 </ul>
-<p>The native interface for the JNEXT extension can be viewed in the plugin header file located in the public directory of your project. It also contains constants and utility functions that can be used in your native code. Your plugin must be derived from JSExt which is defined in plugin.h. That is, you must implement the following class:</p>
+<p>The native interface for the JNEXT extension can be viewed in the
+plugin header file located in the project's public directory. It also
+features constants and utility functions available from within native
+code. The plugin must be derived from <code>JSExt</code>, which is defined in
+<code>plugin.h</code>. That is, you must implement the following class:</p>
+
+<pre class="prettyprint"><code>    class JSExt
+    {
+    public:
+        virtual ~JSExt() {};
+        virtual string InvokeMethod( const string&amp; strCommand ) = 0;
+        virtual bool CanDelete( void ) = 0;
+    private:
+        std::string m_id;
+    };
+</code></pre>
+
+<p>The extension should include the <code>plugin.h</code> header file. In the <code>Echo</code>
+example, you use <code>JSExt</code> as follows in the <code>echo_js.hpp</code> file:</p>
+
+<pre class="prettyprint"><code>    #include "../public/plugin.h"
+    #include &lt;string&gt;
+
+    #ifndef ECHO_JS_H_
+    #define ECHO_JS_H_
+
+    class Echo : public JSExt
+    {
+    public:
+        explicit Echo(const std::string&amp; id);
+        virtual ~Echo();
+        virtual std::string InvokeMethod(const std::string&amp; command);
+        virtual bool CanDelete();
+    private:
+        std::string m_id;
+    };
+
+    #endif // ECHO_JS_H_
+</code></pre>
 
-<pre class="prettyprint"><code>class JSExt
-{
-public:
-    virtual ~JSExt() {};
-    virtual string InvokeMethod( const string&amp; strCommand ) = 0;
-    virtual bool CanDelete( void ) = 0;
-private:
-    std::string m_id;
-};
-</code></pre>
-
-<p>Therefore, your extension should include the plugin.h header file. In the Echo example, you use JSExt as follows in the echo_js.hpp file:</p>
-
-<pre class="prettyprint"><code>#include "../public/plugin.h"
-#include &lt;string&gt;
-
-#ifndef ECHO_JS_H_
-#define ECHO_JS_H_
-
-class Echo : public JSExt
-{
-public:
-    explicit Echo(const std::string&amp; id);
-    virtual ~Echo();
-    virtual std::string InvokeMethod(const std::string&amp; command);
-    virtual bool CanDelete();
-private:
-    std::string m_id;
-};
-
-#endif // ECHO_JS_H_
-</code></pre>
-
-<p>The <code>m_id</code> is an attribute that contains the JNEXT id for this object. The id is passed to the class as an argument to the constructor. It is needed to trigger events on the JavaScript side from native.
-The CanDelete method is used by JNEXT to determine whether your native object can be deleted.
-The InvokeMethod function is called as a result from a request from JavaScript to invoke a method of this particular object. The only argument to this function is a string passed from JavaScript that this method should parse in order to determine which method of the native object should be executed.
-Now we implement these functions in echo_js.cpp. For the Echo example, we implement InvokeMethod function as follows:</p>
-
-<pre class="prettyprint"><code>string Echo::InvokeMethod(const string&amp; command) {
-
-    //parse command and args from string
-    int index = command.find_first_of(" ");
-    string strCommand = command.substr(0, index);
-    string strValue = command.substr(index + 1, command.length());
-
-    // Determine which function should be executed
-    if (strCommand == "echo") {
-        return strValue;
-    } else {
-        return "Unsupported Method";
+<p>The <code>m_id</code> attribute contains the <code>JNEXT</code> id for the object, which is
+passed to the class as an argument to the constructor. It is needed
+for the native side to trigger events on the JavaScript side.  The
+<code>CanDelete</code> method determines whether the native object can be
+deleted.  The <code>InvokeMethod</code> function is called as a result from a
+request from JavaScript to invoke a method of this particular
+object. The only argument to this function is a string passed from
+JavaScript that this method parses to determine which of the native
+object's methods should execute.  These methods are implemented in
+<code>echo_js.cpp</code>. Here is the <code>InvokeMethod</code> function for the <code>Echo</code>
+example:</p>
+
+<pre class="prettyprint"><code>    string Echo::InvokeMethod(const string&amp; command) {
+
+        //parse command and args from string
+        int index = command.find_first_of(" ");
+        string strCommand = command.substr(0, index);
+        string strValue = command.substr(index + 1, command.length());
+
+        // Determine which function should be executed
+        if (strCommand == "echo") {
+            return strValue;
+        } else {
+            return "Unsupported Method";
+        }
     }
-}
 </code></pre>
 
-<p>Your native plugin must also implement the following callback functions:</p>
+<p>The native plugin must also implement the following callback
+functions:</p>
 
 <ul>
 <li><p><code>extern char* onGetObjList( void );</code></p></li>
 <li><p><code>extern JSExt* onCreateObject( const string&amp; strClassName, const string&amp; strObjId );</code></p></li>
 </ul>
-<p>The <code>onGetObjList</code> function returns a comma separated list of classes supported by JNEXT. JNEXT uses this function to determine the set of classes that JNEXT can instantiate. In our Echo plugin, we have the following in <code>echo_js.cpp</code>:</p>
-
-<pre class="prettyprint"><code>char* onGetObjList() {
-    static char name[] = "Echo";
-    return name;
-}
+<p>The <code>onGetObjList</code> function returns a comma-separated list of classes
+supported by JNEXT. JNEXT uses this function to determine the set of
+classes that JNEXT can instantiate. The <code>Echo</code> plugin implements the
+following in <code>echo_js.cpp</code>:</p>
+
+<pre class="prettyprint"><code>    char* onGetObjList() {
+        static char name[] = "Echo";
+        return name;
+    }
 </code></pre>
 
-<p>The <code>onCreateObject</code> function takes two parameters. The first parameter is the name of the class requested to be created from the JavaScript side. Valid names are those that are returned in <code>onGetObjList</code>. The second parameter is the unique object id for the class. This method returns a pointer to the created plugin object. In our Echo plugin, we have the following in <code>echo_js.cpp</code>:</p>
-
-<pre class="prettyprint"><code>JSExt* onCreateObject(const string&amp; className, const string&amp; id) {
-    if (className == "Echo") {
-        return new Echo(id);
+<p>The <code>onCreateObject</code> function takes two parameters. The first is the
+name of the requested class to be created from the JavaScript side,
+with valid names as those returned in <code>onGetObjList</code>. The second
+parameter is the class's unique object id. This method returns a
+pointer to the created plugin object. The <code>Echo</code> plugin implements the
+following in <code>echo_js.cpp</code>:</p>
+
+<pre class="prettyprint"><code>    JSExt* onCreateObject(const string&amp; className, const string&amp; id) {
+        if (className == "Echo") {
+            return new Echo(id);
+        }
+        return NULL;
     }
-    return NULL;
-}
 </code></pre>
 
 <h2>
-<a name="BlackBerry%2010%20Plugins_creating_the_javascript_part_of_your_plugin">Creating the JavaScript part of your plugin</a>
+<a name="BlackBerry%2010%20Plugins_creating_the_plugin_s_javascript">Creating the plugin's JavaScript</a>
 </h2>
 
-<p>The JavaScript portion of your plugin must contain the following files:</p>
+<p>The plugin must contain the following JavaScript files:</p>
 
 <ul>
-<li><p><code>client.js</code>: This is considered the client side and contains the API that a Cordova application can call. The API in <code>client.js</code> calls makes calls to <code>index.js</code>. The API in <code>client.js</code> also connects callback functions to the events that fire the callbacks.</p></li>
-<li><p><code>index.js</code>: Cordova loads <code>index.js</code> and makes it accessible through the cordova.exec bridge. The <code>client.js</code> file makes calls to the API in the <code>index.js</code> file, which in turn makes call to JNEXT to communicate with the native side.</p></li>
+<li><p><code>client.js</code>: This is considered the client side and contains the API
+available to a Cordova application. The API in <code>client.js</code> calls
+makes calls to <code>index.js</code>. The API in <code>client.js</code> also connects
+callback functions to the events that fire the callbacks.</p></li>
+<li><p><code>index.js</code>: Cordova loads <code>index.js</code> and makes it accessible through
+the cordova.exec bridge. The <code>client.js</code> file makes calls to the API
+in the <code>index.js</code> file, which in turn makes call to JNEXT to
+communicate with the native side.</p></li>
 </ul>
-<p>The client and server side (<code>client.js</code> and <code>index.js</code>) interacts through the <code>Cordova.exec</code>function. So, in <code>client.js</code> you invoke the <code>exec</code> function and provide the necessary arguments. In the Echo plugin, we have the following in the <code>client.js</code> file:</p>
-
-<pre class="prettyprint"><code>var service = "org.apache.cordova.blackberry.echo",
-    exec = cordova.require("cordova/exec");
-
-module.exports = {
-    echo: function (data, success, fail) {
-        exec(success, fail, service, "echo", { data: data });
-    }
-};
+<p>The client and server side (<code>client.js</code> and <code>index.js</code>) interacts
+through the <code>Cordova.exec</code> function. The <code>client.js</code> needs to invoke
+the <code>exec</code> function and provide the necessary arguments. The <code>Echo</code>
+plugin implements the following in the <code>client.js</code> file:</p>
+
+<pre class="prettyprint"><code>    var service = "org.apache.cordova.blackberry.echo",
+        exec = cordova.require("cordova/exec");
+
+    module.exports = {
+        echo: function (data, success, fail) {
+            exec(success, fail, service, "echo", { data: data });
+        }
+    };
 </code></pre>
 
-<p>Now, <code>index.js</code> interacts with the native side using JNEXT. So you attach a constructor function named Echo to JNEXT. Within the constructor you perform the following key operations using the init function:</p>
+<p>The <code>index.js</code> component uses JNEXT to interact with the native
+side. Attaching a constructor function named <code>Echo</code> to JNEXT allows
+you to perform the following key operations using the <code>init</code> function:</p>
 
 <ul>
-<li>Specify the required module exported by the native side. The name of the required module must match the name of a shared library file (.so file).</li>
-</ul>
-<p><code>JNEXT.require("libecho")</code></p>
+<li>
+<p>Specify the required module exported by the native side. The name of
+the required module must match the name of a shared library file
+(<code>.so</code> file):</p>
 
-<ul>
-<li>Create an object by using an acquired module and save the ID that's returned by the call.
-self.m_id = JNEXT.createObject("libecho.Echo");
-When your application calls the echo function in <code>client.js</code>, that call in turn calls the echo function in <code>index.js</code>, where the PluginResult object sends a response (data) back to <code>client.js</code>. Since the args argument passed into the functions was converted by JSON.stringfy() and encoded as a URIcomponent, you must call the following:</li>
-</ul>
-<p><code>data = JSON.parse(decodeURIComponent(args.data));</code></p>
+<pre class="prettyprint"><code>JNEXT.require("libecho")
+</code></pre>
+</li>
+<li>
+<p>Create an object by using an acquired module and save the ID that's
+returned by the call:</p>
 
-<p>You can now send the data back. Let’s put it all together:</p>
+<pre class="prettyprint"><code>self.m_id = JNEXT.createObject("libecho.Echo");
+</code></pre>
 
-<pre class="prettyprint"><code>module.exports = {
+<p>When the application calls the <code>echo</code> function in <code>client.js</code>, that
+call in turn calls the <code>echo</code> function in <code>index.js</code>, where the
+<code>PluginResult</code> object sends data as a response back to <code>client.js</code>.
+Since the <code>args</code> argument passed into the functions was converted by
+<code>JSON.stringfy()</code> and encoded as a <code>URIcomponent</code>, you must call the
+following:</p>
 
-    echo: function (success, fail, args, env) {
+<pre class="prettyprint"><code>data = JSON.parse(decodeURIComponent(args.data));
+</code></pre>
+</li>
+</ul>
+<p>You can now send the data back, as in the following:</p>
 
-        var result = new PluginResult(args, env),
-        data = JSON.parse(decodeURIComponent(args.data)),
-        response = echo.getInstance().echo(data);
-        result.ok(response, false);
-    }
-};
+<pre class="prettyprint"><code>    module.exports = {
+        echo: function (success, fail, args, env) {
+            var result = new PluginResult(args, env),
+            data = JSON.parse(decodeURIComponent(args.data)),
+            response = echo.getInstance().echo(data);
+            result.ok(response, false);
+        }
+    };
 </code></pre>
 
 <h2>
-<a name="BlackBerry%2010%20Plugins_architecture_of_the_plugin">Architecture of the plugin</a>
+<a name="BlackBerry%2010%20Plugins_plugin_architecture">Plugin Architecture</a>
 </h2>
 
-<p>You can place the artifacts of the plugin, which includes the
-<code>plugin.xml</code> file, the source files (JavaScript, C++), and the binary
-files (<code>.so</code>) within any directory structure, as long as you correctly
-specify the file locations in the <code>plugin.xml</code> file. A typical structure
-looks like this:</p>
+<p>You can place the plugin's artifacts, including the <code>plugin.xml</code> file,
+the JavaScript and C++ source files, and the <code>.so</code> binary files within
+any directory structure, as long as you correctly specify the file
+locations in the <code>plugin.xml</code> file. Here is a typical structure:</p>
 
-<p><strong><em>your_project_directory</em></strong> (&gt;plugin.xml)</p>
+<p><strong><em>project_directory</em></strong> (&gt;plugin.xml)</p>
 
 <ul>
 <li>
@@ -321,34 +381,33 @@ looks like this:</p>
 </ul>
 </li>
 </ul>
-<p>(The list shows the hierarchical relationship among the top-level
-directories. The parenthesis shows the contents of a given directory. All
+<p>The list shows the hierarchical relationship among the top-level
+folders. The parenthesis shows the contents of a given directory. All
 directory names appear in bold text. <a href="cordova_file_file.md.html#File">File</a> names are preceded by the <code>&gt;</code>
-sign.)</p>
+sign.</p>
 
 <h2>
-<a name="BlackBerry%2010%20Plugins_contents_of_the_plugin_xml_file">Contents of the plugin.xml file</a>
+<a name="BlackBerry%2010%20Plugins_the_plugin_xml_file">The plugin.xml file</a>
 </h2>
 
-<p>The <code>plugin.xml</code> file contains the namespace of the extension and other
-metadata. Define the namespace and specify other metadata for the Echo
-plugin as follows:</p>
-
-<pre class="prettyprint"><code>&lt;plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
-    id="org.apache.cordova.blackberry.echo"
-    version="1.0.0"&gt;
-    &lt;js-module src="www/client.js"&gt;
-        &lt;merges target="navigator" /&gt;
-    &lt;/js-module&gt;
-    &lt;platform name="blackberry10"&gt;
-        &lt;source-file src="src/blackberry10/index.js" /&gt;
-        &lt;lib-file src="src/blackberry10/native/device/libecho.so" arch="device" /&gt;
-        &lt;lib-file src="src/blackberry10/native/simulator/libecho.so" arch="simulator" /&gt;
-        &lt;config-file target="www/config.xml" parent="/widget"&gt;
-            &lt;feature name="org.apache.cordova.blackberry.echo" value="org.apache.cordova.blackberry.echo" /&gt;
-        &lt;/config-file&gt;
-    &lt;/platform&gt;
-&lt;/plugin&gt;
+<p>The <code>plugin.xml</code> file contains the extension's namespace and other
+metadata. Set up the <code>Echo</code> plugin as follows:</p>
+
+<pre class="prettyprint"><code>    &lt;plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
+        id="org.apache.cordova.blackberry.echo"
+        version="1.0.0"&gt;
+        &lt;js-module src="www/client.js"&gt;
+            &lt;merges target="navigator" /&gt;
+        &lt;/js-module&gt;
+        &lt;platform name="blackberry10"&gt;
+            &lt;source-file src="src/blackberry10/index.js" /&gt;
+            &lt;lib-file src="src/blackberry10/native/device/libecho.so" arch="device" /&gt;
+            &lt;lib-file src="src/blackberry10/native/simulator/libecho.so" arch="simulator" /&gt;
+            &lt;config-file target="www/config.xml" parent="/widget"&gt;
+                &lt;feature name="org.apache.cordova.blackberry.echo" value="org.apache.cordova.blackberry.echo" /&gt;
+            &lt;/config-file&gt;
+        &lt;/platform&gt;
+    &lt;/plugin&gt;
 </code></pre>
 
             </div>

Modified: cordova/site/public/docs/en/edge/guide_platforms_blackberry10_tools.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_blackberry10_tools.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_blackberry10_tools.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_blackberry10_tools.md.html Tue Oct 22 18:30:36 2013
@@ -107,6 +107,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>
@@ -153,6 +154,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>
+
 <p>If you need help with any command listed below, type the command along
 with the <code>-h</code> or <code>-help</code> arguments, which are supported by all
 commands and which provide descriptions for each of the available

Modified: cordova/site/public/docs/en/edge/guide_platforms_blackberry10_upgrading.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_blackberry10_upgrading.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_blackberry10_upgrading.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_blackberry10_upgrading.md.html Tue Oct 22 18:30:36 2013
@@ -115,6 +115,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_blackberry_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_blackberry_index.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_blackberry_index.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_blackberry_index.md.html Tue Oct 22 18:30:36 2013
@@ -111,6 +111,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_blackberry_plugin.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_blackberry_plugin.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_blackberry_plugin.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_blackberry_plugin.md.html Tue Oct 22 18:30:36 2013
@@ -96,9 +96,9 @@
             <h1>BlackBerry Plugins</h1>
             <small><select><option value="BlackBerry%2520Plugins">BlackBerry Plugins</option>
 <option value="BlackBerry%20Plugins_modifying_plugins_xml">      - Modifying plugins.xml</option>
-<option value="BlackBerry%20Plugins_adding_echo_java">      - Adding Echo.java</option>
-<option value="BlackBerry%20Plugins_writing_echo_java">      - Writing Echo.java</option>
-<option value="BlackBerry%20Plugins_updating_the_jar_in_your_project_s_www_directory">      - Updating the .jar in your project's www directory</option></select></small>
+<option value="BlackBerry%20Plugins_the_echo_java_file">      - The Echo.java File
+</option>
+<option value="BlackBerry%20Plugins_updating_the_jar_in_the_project_s_www_directory">      - Updating the .jar in the project's www directory</option></select></small>
         </div>
 
         <div id="sidebar">
@@ -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>
@@ -141,140 +142,129 @@
             <div id="content">
                 <h1><a name="BlackBerry%20Plugins">BlackBerry Plugins</a></h1>
 
-<p>This guide shows how to develop an Echo plugin on BlackBerry.  The
-<a href="guide_hybrid_plugins_index.md.html#Plugin%20Development%20Guide">Plugin Development Guide</a> provides a broad overview with which you
-should already be familiar, and this guide picks up where it leaves
-off.  In addition, download the <a class="external" href="https://git-wip-us.apache.org/repos/asf?p=cordova-blackberry-webworks.git;a=summary">Cordova BlackBerry
-repository</a>.</p>
-
-<p>The <code>Cordova-BlackBerry</code> project allows you to deploy to BlackBerry
+<p>This section provides details for how to implement native plugin code
+on the BlackBerry 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.</p>
+
+<p>In addition, download the <a class="external" href="https://git-wip-us.apache.org/repos/asf?p=cordova-blackberry.git;a=summary">Cordova BlackBerry
+repository</a>.
+The <code>Cordova-BlackBerry</code> project allows you to deploy to BlackBerry
 devices such as the Torch, Bold, and Playbook. The Playbook uses a
 different code base than other BlackBerry handheld devices, for which
 you need to duplicate your development efforts.  This guide focuses on
-the handheld devices rather than tablets. (In the future, this guide
-should cover both platforms.)</p>
-
-<p>The Echo plugin essentially returns whatever message a user provides
-to the <code>window.echo</code> function:</p>
-
-<pre class="prettyprint"><code>window.echo = function(str, callback) {
-    cordova.exec(callback, function(err) {
-        callback('Nothing to echo.');
-    }, "Echo", "echo", [str]);
-};
-</code></pre>
+handheld devices rather than tablets.</p>
 
 <h2>
 <a name="BlackBerry%20Plugins_modifying_plugins_xml">Modifying plugins.xml</a>
 </h2>
 
-<p>Your project's <code>www/plugins.xml</code> directory contains all of the
-necessary references to your Cordova project's plugins. Add an
-additional reference so that when <code>cordova.exec</code> is called, Cordova
-knows how to map the <code>Echo</code> argument of <code>cordova.exec</code> to the <code>Echo</code>
-class that we want to write natively:</p>
-
-<pre class="prettyprint"><code>&lt;feature name="Echo"&gt;
-    &lt;param name="blackberry-package" value="org.apache.cordova.echo.Echo" /&gt;
-&lt;/feature&gt;
-</code></pre>
+<p>The <code>Echo</code> plugin returns whatever message a user sends with the
+<code>window.echo</code> function on the JavaScript side:</p>
 
-<h2>
-<a name="BlackBerry%20Plugins_adding_echo_java">Adding Echo.java</a>
-</h2>
+<pre class="prettyprint"><code>    window.echo = function(str, callback) {
+        cordova.exec(callback, function(err) {
+            callback('Nothing to echo.');
+        }, "Echo", "echo", [str]);
+    };
+</code></pre>
 
-<p>If you notice the structure of the value attribute, you'll see a
-defined path that leads to the Echo plugin. In the root directory of the
-Cordova BlackBerry WebWorks repo, look for a directory called <code>framework</code>.
-This directory contains all of the source code that runs natively on the
-BlackBerry. Navigate to <code>framework/ext/src/org/apache/cordova</code>. At
-this point, you'll see all of the plugin directorys, inside of which is
-the source code. So add the directory echo to
-<code>framework/ext/src/org/apache/cordova/echo</code> and create a file called
-<code>Echo.java</code> at <code>framework/ext/src/org/apache/cordova/echo/Echo.java</code>.</p>
+<p>The project's <code>www/plugins.xml</code> file contains all of the necessary
+references to the Cordova project's plugins. Add an additional
+reference so that when <code>cordova.exec</code> is called, Cordova knows how to
+map the <code>Echo</code> argument to the native <code>Echo</code> class:</p>
+
+<pre class="prettyprint"><code>    &lt;feature name="Echo"&gt;
+        &lt;param name="blackberry-package" value="org.apache.cordova.echo.Echo" /&gt;
+    &lt;/feature&gt;
+</code></pre>
 
 <h2>
-<a name="BlackBerry%20Plugins_writing_echo_java">Writing Echo.java</a>
+<a name="BlackBerry%20Plugins_the_echo_java_file">The Echo.java File
+</a>
 </h2>
 
-<p>The basic idea behind writing a plugin is to create a class that
-extends the Plugin class and have a method called <code>execute</code> to return
-a <code>PluginResult</code> class. Any call to <code>cordova.exec</code> passes in the
-action to execute within the class, as well as the arguments. In this
-case, "echo" is the action we want to execute within the class "Echo"
-and [str] are the arguments we are passing in.</p>
-
-<pre class="prettyprint"><code>package org.apache.cordova.echo;
-
-import org.apache.cordova.api.Plugin;
-import org.apache.cordova.api.PluginResult;
-import org.apache.cordova.json4j.JSONArray;
-import org.apache.cordova.json4j.JSONException;
-import org.apache.cordova.json4j.JSONObject;
-/**
- * A simple plugin to demonstrate how to build a plugin for BlackBerry
- * Basically echos back the msg that a user calls to this plugin
- */
-public final class Echo extends Plugin {
-
-    public static final String echo = "echo";
-
-    public PluginResult execute(String action, JSONArray args, String callbackId) {
-        PluginResult result = new PluginResult(PluginResult.Status.INVALID_ACTION, "Echo: Invalid action:" + action);
-        if(action.equals(echo)){
-            try {
-                String theMsg = args.getString(0);
-                if(theMsg!= null || theMsg.length()&gt;0){
-                    result = new PluginResult(PluginResult.Status.OK, theMsg);
-                }else{
-                    result = new PluginResult(PluginResult.Status.ERROR, "Nothing to echo.");
+<p>The <code>feature</code> specification's <code>value</code> attribute references a reverse
+domain-style identifier. This corresponds to a path within the Cordova
+BlackBerry WebWorks repo's <code>framework/ext/src</code> directory.  Add a
+<code>framework/ext/src/org/apache/cordova/echo</code> directory and and add a
+<code>Echo.java</code> file.</p>
+
+<p>The <code>Echo.java</code> needs to define a class that extends the <code>Plugin</code>
+class. It also needs to implement an <code>execute</code> method that returns a
+<code>PluginResult</code> class.  Any call to <code>cordova.exec</code> passes in the action
+within the class to execute, as well as the arguments. In this case,
+the <code>Echo</code> class's <code>echo</code> method is the action, and <code>[str]</code> is an
+additional argument to pass to the method.</p>
+
+<pre class="prettyprint"><code>    package org.apache.cordova.echo;
+
+    import org.apache.cordova.api.Plugin;
+    import org.apache.cordova.api.PluginResult;
+    import org.apache.cordova.json4j.JSONArray;
+    import org.apache.cordova.json4j.JSONException;
+    import org.apache.cordova.json4j.JSONObject;
+    /**
+     * A simple plugin to demonstrate how to build a plugin for BlackBerry
+     * Basically echos back the msg that a user calls to this plugin
+     */
+    public final class Echo extends Plugin {
+
+        public static final String echo = "echo";
+
+        public PluginResult execute(String action, JSONArray args, String callbackId) {
+            PluginResult result = new PluginResult(PluginResult.Status.INVALID_ACTION, "Echo: Invalid action:" + action);
+            if(action.equals(echo)){
+                try {
+                    String theMsg = args.getString(0);
+                    if(theMsg!= null || theMsg.length()&gt;0){
+                        result = new PluginResult(PluginResult.Status.OK, theMsg);
+                    }else{
+                        result = new PluginResult(PluginResult.Status.ERROR, "Nothing to echo.");
+                    }
+                } catch (JSONException e) {
+                    result = new PluginResult(PluginResult.Status.JSON_EXCEPTION, e.getMessage());
                 }
-            } catch (JSONException e) {
-                result = new PluginResult(PluginResult.Status.JSON_EXCEPTION, e.getMessage());
             }
+            return result;
         }
-
-        return result;
     }
+</code></pre>
+
+<p>In the code above, the <code>execute</code> method first brings in an action. In
+this case, there is only one valid <code>echo</code> action, so it simply checks
+for that value.</p>
+
+<p>The incoming message passed in as <code>[str]</code> from JavaScript is available
+to the <code>Echo</code> class as an <code>args</code> array. In this case, there is only
+one argument, accessible using a zero-based array index:</p>
 
-}
+<pre class="prettyprint"><code>    String theMsg = args.getString(0);
 </code></pre>
 
-<p>So if we look at the code above, we can see that within the execute
-method, we are first looking for what actions are coming in. The Echo
-plugin has only one action, <code>echo</code>, so we will be only checking for
-that. If our plugin had more actions, it's simply a matter of adding
-more conditional tests to check for those actions.</p>
-
-<p>We are then going to grab the message coming in from the arguments
-which is supplied by the args parameter.  We can grab the first
-argument by simply doing <code>String theMsg = args.getString(0);</code>.</p>
-
-<p>We will do some error checking and if the message looks okay, we will
-instantiate a new PluginResult with an ok status:
-<code>PluginResult.Status.OK</code> and return the message: <code>theMsg</code>. After this,
-we return the result which to be passed back to JavaScript to be fired
-in the success callback. If something fails, we can return various
-status exceptions like <code>PluginResult.Status.ERROR</code>,
-<code>PluginResult.Status.JSON_EXCEPTION</code>, or
-<code>PluginResult.Status.INVALID_ACTION</code>. When passed back, these types of
-results fire the fail callback in JavaScript.</p>
+<p>After various error-checking on the message's value, the method
+instantiates a new <code>PluginResult</code> with an <code>OK</code> status and returns the
+message.  This value, in turn, is passed back as an argument to the
+JavaScript success callback. In case of error, various status codes
+are sent back to the JavaScript's error callback.</p>
 
 <h2>
-<a name="BlackBerry%20Plugins_updating_the_jar_in_your_project_s_www_directory">Updating the .jar in your project's www directory</a>
+<a name="BlackBerry%20Plugins_updating_the_jar_in_the_project_s_www_directory">Updating the .jar in the project's www directory</a>
 </h2>
 
 <p>The added <code>Echo.java</code> needs to be updated in your project.  To build
-the <code>.jar</code> file, Navigate to the BlackBerry WebWorks repo's root
+the <code>.jar</code> file, navigate to the BlackBerry WebWorks repo's root
 directory and run the <code>ant</code> command:</p>
 
-<pre class="prettyprint"><code>ant update -Dproject.path="~/path_to_my_project"
+<pre class="prettyprint"><code>    ant update -Dproject.path="~/path_to_my_project"
 </code></pre>
 
 <p>This builds a new <code>.jar</code> file in the <code>build/ext</code> directory. Copy the
-<code>build/ext/cordova.jar</code> file into your <code>project/www/ext</code> directory.</p>
+<code>build/ext/cordova.jar</code> file into the <code>project/www/ext</code> directory.</p>
 
-<p>If all goes well, that allows you to use the Echo plugin in
+<p>If all goes well, that allows you to use the <code>Echo</code> plugin in
 BlackBerry.</p>
 
             </div>

Modified: cordova/site/public/docs/en/edge/guide_platforms_blackberry_tools.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_blackberry_tools.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_blackberry_tools.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_blackberry_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="BlackBerry%20Command-line%20Tools_create_a_project">Create a project</a>
 </h2>

Modified: cordova/site/public/docs/en/edge/guide_platforms_blackberry_upgrading.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_blackberry_upgrading.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_blackberry_upgrading.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_blackberry_upgrading.md.html Tue Oct 22 18:30:36 2013
@@ -113,6 +113,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_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_index.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_index.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_index.md.html Tue Oct 22 18:30:36 2013
@@ -109,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>

Modified: cordova/site/public/docs/en/edge/guide_platforms_ios_config.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_ios_config.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_ios_config.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_ios_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>
@@ -145,17 +146,22 @@ File</a> for information on global confi
 <ul>
 <li>
 <p><code>EnableViewportScale</code> (boolean, defaults to <code>false</code>): Set to <code>true</code>
-to use a viewport meta tag to either disable or restrict the range
-of user scaling. </p>
+to allow a viewport meta tag to either disable or restrict the range
+of user scaling, which is enabled by default.</p>
 
 <pre class="prettyprint"><code>&lt;preference name="EnableViewportScale" value="true"/&gt;
 </code></pre>
+
+<p>Place a viewport such as the following in the HTML to disable
+scaling and fit content flexibly within the rendering WebView:</p>
+
+<pre class="prettyprint"><code>&lt;meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no' /&gt;
+</code></pre>
 </li>
 <li>
 <p><code>MediaPlaybackRequiresUserAction</code> (boolean, defaults to <code>false</code>):
-Set to <code>true</code> to prevent HTML5 videos from playing automatically
-with the <code>autoplay</code> attribute. Does not apply when calling <code>play()</code>
-on a video object.</p>
+Set to <code>true</code> to prevent HTML5 videos or audios from playing
+automatically with the <code>autoplay</code> attribute or via JavaScript.</p>
 
 <pre class="prettyprint"><code>&lt;preference name="MediaPlaybackRequiresUserAction" value="true"/&gt;
 </code></pre>

Modified: cordova/site/public/docs/en/edge/guide_platforms_ios_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_ios_index.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_ios_index.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_ios_index.md.html Tue Oct 22 18:30:36 2013
@@ -109,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>

Modified: cordova/site/public/docs/en/edge/guide_platforms_ios_plugin.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_ios_plugin.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_ios_plugin.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_ios_plugin.md.html Tue Oct 22 18:30:36 2013
@@ -99,10 +99,11 @@
 <option value="iOS%20Plugins_plugin_initialization_and_lifetime">      - Plugin Initialization and Lifetime</option>
 <option value="iOS%20Plugins_writing_an_ios_cordova_plugin">      - Writing an iOS Cordova Plugin</option>
 <option value="iOS%20Plugins_ios_cdvpluginresult_message_types">      - iOS CDVPluginResult message types</option>
-<option value="iOS%20Plugins_echo_plugin_ios_plugin">      - Echo Plugin iOS Plugin</option>
+<option value="iOS%20Plugins_echo_ios_plugin_example">      - Echo iOS Plugin Example</option>
+<option value="iOS%20Plugins_ios_integration">      - iOS Integration</option>
 <option value="iOS%20Plugins_threading">      - Threading</option>
-<option value="iOS%20Plugins_advanced_plugin_functionality">      - Advanced Plugin Functionality</option>
-<option value="iOS%20Plugins_debugging_plugins">      - Debugging Plugins</option>
+<option value="iOS%20Plugins_debugging_ios_plugins">      - Debugging iOS Plugins
+</option>
 <option value="iOS%20Plugins_common_pitfalls">      - Common Pitfalls</option></select></small>
         </div>
 
@@ -111,6 +112,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>
@@ -146,236 +148,257 @@
             <div id="content">
                 <h1><a name="iOS%20Plugins">iOS Plugins</a></h1>
 
-<p>A plugin is an Objective-C class that extends the <code>CDVPlugin</code> class.</p>
-
-<p>Each plugin class must be registered as a <code>&lt;feature&gt;</code> tag in the
-<code>config.xml</code> file. It is through this mechanism that JavaScript's <code>exec</code>
-method's <code>service</code> parameter maps to an Objective-C class.</p>
+<p>This section provides details for how to implement native plugin code
+on the iOS 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.</p>
+
+<p>An iOS plugin is implemented as an Objective-C class that extends the
+<code>CDVPlugin</code> class.  For JavaScript's <code>exec</code> method's <code>service</code>
+parameter to map to an Objective-C class, each plugin class must be
+registered as a <code>&lt;feature&gt;</code> tag in the named application directory's
+<code>config.xml</code> file.</p>
 
 <h2>
 <a name="iOS%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 JavaScript portion of a plugin 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 <code>UIWebView</code> to the iOS 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>
-
-<p>Specifiy the plugin as a <code>&lt;feature&gt;</code> tag in your Cordova-iOS
-application's project's <code>config.xml</code> file.</p>
+effectively calling the <code>action</code> method on the <code>service</code> class, with
+the arguments passed in the <code>args</code> array.</p>
 
-<pre class="prettyprint"><code>&lt;feature name="LocalStorage"&gt;
-    &lt;param name="ios-package" value="CDVLocalStorage" /&gt;
-&lt;/feature&gt;
+<p>Specify the plugin as a <code>&lt;feature&gt;</code> tag in your Cordova-iOS
+application's project's <code>config.xml</code> file, using the <code>plugin.xml</code> file
+to inject this markup automatically, as described in Application
+Plugins:</p>
+
+<pre class="prettyprint"><code>    &lt;feature name="LocalStorage"&gt;
+        &lt;param name="ios-package" value="CDVLocalStorage" /&gt;
+    &lt;/feature&gt;
 </code></pre>
 
-<p>The feature <code>name</code> attribute should match what you use in the JavaScript
-<code>exec</code> call's <code>service</code> parameter, and the <code>value</code> attribute should match the name of the plugin's
-Objective-C class. <code>&lt;param name&gt;</code> should always be i<code>"ios-package"</code>.
-If you do not follow this setup, the plugin may compile but will not be
-reachable by Cordova.</p>
+<p>The feature's <code>name</code> attribute should match what you specify as the
+JavaScript <code>exec</code> call's <code>service</code> parameter. The <code>value</code> attribute
+should match the name of the plugin's Objective-C class. The <code>&lt;param&gt;</code>
+element's <code>name</code> should always be <code>ios-package</code>.  If you do not follow
+these guidelines, the plugin may compile, but Cordova may still not be
+able to access it.</p>
 
 <h2>
 <a name="iOS%20Plugins_plugin_initialization_and_lifetime">Plugin Initialization and Lifetime</a>
 </h2>
 
 <p>One instance of a plugin object is created for the life of each
-<code>UIWebView</code>. Plugins are not instantiated until they are first
-referenced by a call from JavaScript, unless <code>&lt;param&gt;</code> with an <code>onload</code>
-<code>name</code> attribute is set to <code>"true"</code> in <code>config.xml</code>. E.g.:</p>
-
-<pre class="prettyprint"><code>&lt;feature name="Echo"&gt;
-    &lt;param name="ios-package" value="Echo" /&gt;
-    &lt;param name="onload" value="true" /&gt;
-&lt;/feature&gt;
+<code>UIWebView</code>. Plugins are ordinarily instantiated when first referenced
+by a call from JavaScript. Otherwise they can be instantiated by
+setting a <code>param</code> named <code>onload</code> to <code>true</code> in the <code>config.xml</code> file:</p>
+
+<pre class="prettyprint"><code>    &lt;feature name="Echo"&gt;
+        &lt;param name="ios-package" value="Echo" /&gt;
+        &lt;param name="onload" value="true" /&gt;
+    &lt;/feature&gt;
 </code></pre>
 
 <p>There is <em>no</em> designated initializer for plugins. Instead, plugins
-should use the <code>pluginInitialize</code> method for their start-up logic.</p>
+should use the <code>pluginInitialize</code> method for their startup logic.</p>
 
-<p>Plugins with long-running requests, background activity (e.g., playing
-media), listeners or internal state should implement the <code>onReset</code>
-method and stop or clean up those activities. This method is run when
-the <code>UIWebView</code> navigates to a new page or refreshes, which reloads
-the JavaScript.</p>
+<p>Plugins with long-running requests, background activity such as media
+playback, listeners, or that maintain internal state should implement
+the <code>onReset</code> method to clean up those activities. The method runs
+when the <code>UIWebView</code> navigates to a new page or refreshes, which
+reloads the JavaScript.</p>
 
 <h2>
 <a name="iOS%20Plugins_writing_an_ios_cordova_plugin">Writing an iOS Cordova Plugin</a>
 </h2>
 
-<p>We have JavaScript fire off a plugin request to the native side. We have the iOS Objective-C plugin mapped properly via the <code>config.xml</code> file. So what does the final iOS Objective-C Plugin class look like?</p>
-
-<p>What gets dispatched to the plugin via JavaScript's <code>exec</code> function gets passed into the corresponding Plugin class's <code>action</code> method. A plugin method has this signature:</p>
-
-<pre class="prettyprint"><code>- (void)myMethod:(CDVInvokedUrlCommand*)command
-{
-    CDVPluginResult* pluginResult = nil;
-    NSString* myarg = [command.arguments objectAtIndex:0];
-
-    if (myarg != nil) {
-        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
-    } else {
-        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Arg was null"];
+<p>A JavaScript call fires off a plugin request to the native side, and
+the corresponding iOS Objective-C plugin is mapped properly in the
+<code>config.xml</code> file, but what does the final iOS Objective-C plugin
+class look like?  Whatever is dispatched to the plugin with
+JavaScript's <code>exec</code> function is passed into the corresponding plugin
+class's <code>action</code> method. A plugin method has this signature:</p>
+
+<pre class="prettyprint"><code>    - (void)myMethod:(CDVInvokedUrlCommand*)command
+    {
+        CDVPluginResult* pluginResult = nil;
+        NSString* myarg = [command.arguments objectAtIndex:0];
+
+        if (myarg != nil) {
+            pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
+        } else {
+            pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsString:@"Arg was null"];
+        }
+        [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
     }
-    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
-}
 </code></pre>
 
-<ol>
-<li><p><a class="external" href="https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVInvokedUrlCommand.h">CDVInvokedUrlCommand.h</a></p></li>
-<li><p><a class="external" href="https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPluginResult.h">CDVPluginResult.h</a></p></li>
-<li><p><a class="external" href="https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVCommandDelegate.h">CDVCommandDelegate.h</a></p></li>
-</ol>
+<p>For more details, see
+ <code>[CDVInvokedUrlCommand.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVInvokedUrlCommand.h)</code>,
+ <code>[CDVPluginResult.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPluginResult.h)</code>,
+and
+ <code>[CDVCommandDelegate.h](https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVCommandDelegate.h)</code>.</p>
+
 <h2>
 <a name="iOS%20Plugins_ios_cdvpluginresult_message_types">iOS CDVPluginResult message types</a>
 </h2>
 
-<p>Using CDVPluginResult you can return a variety of result types back to your JavaScript callbacks, using class methods that look like:</p>
+<p>You can use <code>CDVPluginResult</code> to return a variety of result types back to
+the JavaScript callbacks, using class methods that follow this pattern:</p>
 
-<pre class="prettyprint"><code>+ (CDVPluginResult*)resultWithStatus:(CDVCommandStatus)statusOrdinal messageAs...
+<pre class="prettyprint"><code>    + (CDVPluginResult*)resultWithStatus:(CDVCommandStatus)statusOrdinal messageAs...
 </code></pre>
 
 <p>You can create <code>String</code>, <code>Int</code>, <code>Double</code>, <code>Bool</code>, <code>Array</code>,
-<code>Dictionary</code>, <code>ArrayBuffer</code>, and <code>Multipart</code> types.  Or, don't attach
-any arguments (just send a status).  Or, return an Error.  You can
-even choose to not send any plugin result at all, in which case the
-callback does not fire.</p>
+<code>Dictionary</code>, <code>ArrayBuffer</code>, and <code>Multipart</code> types. You can also leave
+out any arguments to send a status, or return an error, or even choose
+not to send any plugin result, in which case neither callback fires.</p>
 
-<h3>Notes</h3>
+<p>Note the following for complex return values:</p>
 
 <ul>
-<li>
-<code>messageAsArrayBuffer</code> expects <code>NSData*</code> and converts to an <code>ArrayBuffer</code> for your JavaScript callback (and <code>ArrayBuffers</code> sent to a plugin from JavaScript are converted to <code>NSData*</code>).</li>
-<li>
-<code>messageAsMultipart</code> expects an <code>NSArray*</code> containing any of the other supported types, and sends the whole array as the <code>arguments</code> to your JavaScript callback.
-<ul>
-<li>Quirk: this is not just syntactic sugar (though it is sweet).  This way, all of the arguments are serialized or deserialized as necessary.  E.g., it is safe to return <code>NSData*</code> as multipart, but not as <code>Array</code>/<code>Dictionary</code>.</li>
-</ul>
-</li>
+<li><p><code>messageAsArrayBuffer</code> expects <code>NSData*</code> and converts to an
+<code>ArrayBuffer</code> in the JavaScript callback. Likewise, any
+<code>ArrayBuffer</code> the JavaScript sends to a plugin are converted to
+<code>NSData*</code>.</p></li>
+<li><p><code>messageAsMultipart</code> expects an <code>NSArray*</code> containing any of the
+other supported types, and sends the entire array as the <code>arguments</code>
+to your JavaScript callback.  This way, all of the arguments are
+serialized or deserialized as necessary, so it is safe to return
+<code>NSData*</code> as multipart, but not as <code>Array</code>/<code>Dictionary</code>.</p></li>
 </ul>
 <h2>
-<a name="iOS%20Plugins_echo_plugin_ios_plugin">Echo Plugin iOS Plugin</a>
+<a name="iOS%20Plugins_echo_ios_plugin_example">Echo iOS Plugin Example</a>
 </h2>
 
-<p>We would add the following to the project's <code>config.xml</code> file:</p>
-
-<pre class="prettyprint"><code>&lt;feature name="Echo"&gt;
-    &lt;param name="ios-package" value="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="ios"&gt;
+        &lt;config-file target="config.xml" parent="/*"&gt;
+            &lt;feature name="Echo"&gt;
+                &lt;param name="ios-package" value="Echo" /&gt;
+            &lt;/feature&gt;
+        &lt;/config-file&gt;
+    &lt;/platform&gt;
 </code></pre>
 
-<p>Then we would add the following files (<code>Echo.h</code> and <code>Echo.m</code>) to the Plugins directory inside our Cordova-iOS
-application directory:</p>
+<p>Then we would add the following <code>Echo.h</code> and <code>Echo.m</code> files to the
+<code>Plugins</code> folder within the Cordova-iOS application directory:</p>
 
-<pre class="prettyprint"><code>/********* Echo.h Cordova Plugin Header *******/
+<pre class="prettyprint"><code>    /********* Echo.h Cordova Plugin Header *******/
 
-#import &lt;Cordova/CDV.h&gt;
+    #import &lt;Cordova/CDV.h&gt;
 
-@interface Echo : CDVPlugin
+    @interface Echo : CDVPlugin
 
-- (void)echo:(CDVInvokedUrlCommand*)command;
+    - (void)echo:(CDVInvokedUrlCommand*)command;
 
-@end
+    @end
 
-/********* Echo.m Cordova Plugin Implementation *******/
+    /********* Echo.m Cordova Plugin Implementation *******/
 
-#import "Echo.h"
-#import &lt;Cordova/CDV.h&gt;
+    #import "Echo.h"
+    #import &lt;Cordova/CDV.h&gt;
 
-@implementation Echo
+    @implementation Echo
 
-- (void)echo:(CDVInvokedUrlCommand*)command
-{
-    CDVPluginResult* pluginResult = nil;
-    NSString* echo = [command.arguments objectAtIndex:0];
+    - (void)echo:(CDVInvokedUrlCommand*)command
+    {
+        CDVPluginResult* pluginResult = nil;
+        NSString* echo = [command.arguments objectAtIndex:0];
 
-    if (echo != nil &amp;&amp; [echo length] &gt; 0) {
-        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:echo];
-    } else {
-        pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
-    }
+        if (echo != nil &amp;&amp; [echo length] &gt; 0) {
+            pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:echo];
+        } else {
+            pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
+        }
 
-    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
-}
+        [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
+    }
 
-@end
+    @end
 </code></pre>
 
-<p>Let's take a look at the code. At the top we have all of the necessary
-Cordova imports. Our class extends from <code>CDVPlugin</code> (very important).</p>
-
-<p>This plugin only supports one action, the <code>echo</code> action. First, we
-grab the echo string using the <code>objectAtIndex</code> method on our <code>args</code>,
-telling it we want to get the 0th parameter in the arguments array. We
-do a bit of parameter checking: make sure it is not <code>nil</code>, and make
-sure it is not a zero-length string.</p>
-
-<p>If it is, we return a <code>PluginResult</code> with an <code>ERROR</code> status. If all of
-those checks pass, then we return a <code>PluginResult</code> with an <code>OK</code>
-status, and pass in the <code>echo</code> string we received in the first place
-as a parameter.</p>
-
-<p>Finally, we send the result to <code>self.commandDelegate</code>, which executes
-the <code>exec</code> method's success or failure callbacks on the JavaScript
-side. If the success callback is called, it passes in the <code>echo</code>
-parameter.</p>
+<p>The necessary imports at the top of the file extends the class from
+<code>CDVPlugin</code>.  In this case, the plugin only supports a single <code>echo</code>
+action. It obtains the echo string by calling the <code>objectAtIndex</code>
+method get the first parameter of the <code>arguments</code> array, which
+corresponds to the arguments passed in by the JavaScript <code>exec()</code>
+function.</p>
+
+<p>It checks the parameter to make sure it is not <code>nil</code> or an empty
+string, returning a <code>PluginResult</code> with an <code>ERROR</code> status if so.  If
+the parameter passes the check, it returns a <code>PluginResult</code> with an
+<code>OK</code> status, passing in the original <code>echo</code> string.  Finally, it sends
+the result to <code>self.commandDelegate</code>, which executes the <code>exec</code>
+method's success or failure callbacks on the JavaScript side. If the
+success callback is called, it passes in the <code>echo</code> parameter.</p>
 
 <h2>
-<a name="iOS%20Plugins_threading">Threading</a>
+<a name="iOS%20Plugins_ios_integration">iOS Integration</a>
 </h2>
 
-<p>Plugin methods are executed in the same thread as the UI. If your
-plugin requires a great deal of processing or requires a blocking
-call, you should use a background thread. For example:</p>
-
-<pre class="prettyprint"><code>- (void)myPluginMethod:(CDVInvokedUrlCommand*)command
-{
-    // Check command.arguments here.
-    [self.commandDelegate runInBackground:^{
-        NSString* payload = nil;
-        // Some blocking logic...
-        CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:payload];
-        // The sendPluginResult method is thread-safe.
-        [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
-    }];
-}
-</code></pre>
+<p>The <code>CDVPlugin</code> class features other methods that your plugin can
+override.  For example, you can capture the <code><a href="cordova_events_events.md.html#pause">pause</a></code>, <code><a href="cordova_events_events.md.html#resume">resume</a></code>, app
+terminate and <code>handleOpenURL</code> events. See the
+<a class="external" href="https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPlugin.h">CDVPlugin.h</a>
+and
+<a class="external" href="https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPlugin.m">CDVPlugin.m</a>
+class for guidance.</p>
 
 <h2>
-<a name="iOS%20Plugins_advanced_plugin_functionality">Advanced Plugin Functionality</a>
+<a name="iOS%20Plugins_threading">Threading</a>
 </h2>
 
-<p>See other methods that you can override in:</p>
-
-<ul>
-<li><p><a class="external" href="https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPlugin.h">CDVPlugin.h</a></p></li>
-<li><p><a class="external" href="https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPlugin.m">CDVPlugin.m</a></p></li>
-</ul>
-<p>For example, you can hook into the <code><a href="cordova_events_events.md.html#pause">pause</a></code>, <code><a href="cordova_events_events.md.html#resume">resume</a></code>, app terminate and <code>handleOpenURL</code> events.</p>
+<p>Plugin methods ordinarily execute in the same thread as the main
+interface. If your plugin requires a great deal of processing or
+requires a blocking call, you should use a background thread. For
+example:</p>
+
+<pre class="prettyprint"><code>    - (void)myPluginMethod:(CDVInvokedUrlCommand*)command
+    {
+        // Check command.arguments here.
+        [self.commandDelegate runInBackground:^{
+            NSString* payload = nil;
+            // Some blocking logic...
+            CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:payload];
+            // The sendPluginResult method is thread-safe.
+            [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
+        }];
+    }
+</code></pre>
 
 <h2>
-<a name="iOS%20Plugins_debugging_plugins">Debugging Plugins</a>
+<a name="iOS%20Plugins_debugging_ios_plugins">Debugging iOS Plugins
+</a>
 </h2>
 
-<p>To debug the Objective-C side, you would use Xcode's built-in debugger.
-For JavaScript, on iOS 5.0 you can use
-<a class="external" href="https://github.com/apache/cordova-weinre">Weinre, an Apache Cordova Project</a> or
-<a class="external" href="http://www.iwebinspector.com/">iWebInspector, a third-party utility</a></p>
-
-<p>For iOS 6, you would use Safari 6.0 to simply attach to your app
-running in the iOS 6 Simulator.</p>
+<p>To debug on the Objective-C side, you need Xcode's built-in debugger.
+For JavaScript, on iOS 5.0 you can use <a class="external" href="https://github.com/apache/cordova-weinre">Weinre, an Apache Cordova
+Project</a> or <a class="external" href="http://www.iwebinspector.com/">iWebInspector,
+a third-party utility</a>.  For iOS 6, you
+can attach Safari 6.0 to your app running within the iOS 6 Simulator.</p>
 
 <h2>
 <a name="iOS%20Plugins_common_pitfalls">Common Pitfalls</a>
 </h2>
 
 <ul>
-<li><p>Don't forget to add your plugin's mapping to config.xml. If you forget, an error is logged in the Xcode console.</p></li>
-<li><p>Don't forget to add any hosts you connect to in the whitelist, as described in Domain <a href="guide_appdev_whitelist_index.md.html#Whitelist%20Guide">Whitelist Guide</a>. If you forget, an error is logged in the Xcode console.</p></li>
+<li><p>Don't forget to add your plugin's mapping to <code>config.xml</code>. If you
+forget, an error is logged in the Xcode console.</p></li>
+<li><p>Don't forget to add any hosts you connect to in the whitelist, as
+described in Domain <a href="guide_appdev_whitelist_index.md.html#Whitelist%20Guide">Whitelist Guide</a>. If you forget, an error is
+logged in the Xcode console.</p></li>
 </ul>
 </div>
         </div>

Modified: cordova/site/public/docs/en/edge/guide_platforms_ios_tools.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_ios_tools.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_ios_tools.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_ios_tools.md.html Tue Oct 22 18:30:36 2013
@@ -107,6 +107,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>
@@ -156,6 +157,10 @@ more detailed directions.</p>
 <p>The iOS command-line tools are built upon shell scripts and rely on
 Xcode command-line tools such as <code>xcode-select</code> and <code>xcodebuild</code>.</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="iOS%20Command-line%20Tools_create_a_project">Create a project</a>
 </h2>

Modified: cordova/site/public/docs/en/edge/guide_platforms_ios_upgrading.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/edge/guide_platforms_ios_upgrading.md.html?rev=1534721&r1=1534720&r2=1534721&view=diff
==============================================================================
--- cordova/site/public/docs/en/edge/guide_platforms_ios_upgrading.md.html (original)
+++ cordova/site/public/docs/en/edge/guide_platforms_ios_upgrading.md.html Tue Oct 22 18:30:36 2013
@@ -126,6 +126,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>
@@ -237,8 +238,8 @@ added. Only 3.0.0 plugins are compatible
 </ol>
 <p><strong>NOTE:</strong> Starting with Cordova 3.0.0, projects do not come with any
 plugins, you will have to install the ones you require for your
-project using the <code>plugman</code> CLI utility. See <a href="#Using%20Plugman%20to%20Manage%0APlugins">Using Plugman to Manage
-Plugins</a>.</p>
+project using the <code>plugman</code> command-line utility. See <a href="#Using%20Plugman%20to%0AManage%20Plugins">Using Plugman to
+Manage Plugins</a>.</p>
 
 <h2>
 <a name="Upgrading%20iOS_upgrading_2_8_0_projects_to_2_9_0">Upgrading 2.8.0 projects to 2.9.0</a>



Mime
View raw message