incubator-callback-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mwbro...@apache.org
Subject [7/11] Version 2.0.0
Date Thu, 19 Jul 2012 23:41:06 GMT
http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/cordova-webview/android.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/cordova-webview/android.md b/docs/en/2.0.0/guide/cordova-webview/android.md
new file mode 100644
index 0000000..6618ccd
--- /dev/null
+++ b/docs/en/2.0.0/guide/cordova-webview/android.md
@@ -0,0 +1,66 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+Embedding Cordova WebView on Android
+====================================
+
+Beginning in Cordova 1.9, with the assistance of the `CordovaActivity`, you can use Cordova as a component in a larger native Android application. This component is known in Android
+as the `CordovaWebView`. New Cordova-based applications from 1.9 onwards will be using the `CordovaWebView` as its main view, whether the legacy `DroidGap` approach is 
+used or not.
+
+The prerequisites are the same as the prerequisites for Android application development. It is assumed that you are familiar with Android development. If not, please
+look at the Getting Started guide to developing a Cordova Application and start there before continuing with this approach. This is not the main approach used
+to author Android Cordova applications. Thus the instructions are currently manual.  In the future, we may try to further automate project generation via this method.
+
+Prerequisites
+-------------
+
+1. **Cordova 1.9** or greater
+2. Android SDK updated with 15
+
+Guide to using CordovaWebView in an Android Project
+---------------------------------------------------
+
+1. Use `bin/create` to fetch the commons-codec-1.6.jar
+2. `cd` into `/framework` and run `ant jar` to build the cordova jar (it
+   will create the .jar file in the form `cordova-x.x.x.jar` in the
+   `/framework` folder)
+3. Copy the cordova jar into your Android project's `/libs` directory
+4. Edit your application's `main.xml` file (under `/res/xml`) to look similar the following. The `layout_height`, `layout_width` and `id` can be modified to suit your application
+
+        <org.apache.cordova.CordovaWebView
+            android:id="@+id/tutorialView"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent" />
+
+5. Modify your activity so that it implements the `CordovaInterface`.  It is recommended that you implement the methods that are included.  You may wish to copy the methods from `/framework/src/org/apache/cordova/DroidGap.java`, or you may wish to implement your own methods.  Below is a fragment of code from a basic application that uses the interface (note how the view id referenced matches the `id` attribute specified in the above XML fragment from step 4):
+
+        public class CordovaViewTestActivity extends Activity implements CordovaInterface {
+            CordovaWebView cwv;
+            /* Called when the activity is first created. */
+            @Override
+            public void onCreate(Bundle savedInstanceState) {
+                super.onCreate(savedInstanceState);
+                setContentView(R.layout.main);
+                cwv = (CordovaWebView) findViewById(R.id.tutorialView);
+                cwv.loadUrl("file:///android_asset/www/index.html");
+            }
+
+6. Copy your application's HTML and JavaScript used to the `/assets/www` directory of your Android project
+7. Copy `cordova.xml` and `plugins.xml` from `/framework/res/xml` to the `/res/xml` folder in your project

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/cordova-webview/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/cordova-webview/index.md b/docs/en/2.0.0/guide/cordova-webview/index.md
new file mode 100644
index 0000000..d3e2e72
--- /dev/null
+++ b/docs/en/2.0.0/guide/cordova-webview/index.md
@@ -0,0 +1,27 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+Embedding WebView
+=================
+
+> Implement the Cordova WebView in your own project.
+
+- Embedding Cordova WebView on Android
+- Embedding Cordova WebView on iOS
+

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/cordova-webview/ios.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/cordova-webview/ios.md b/docs/en/2.0.0/guide/cordova-webview/ios.md
new file mode 100644
index 0000000..c5193b3
--- /dev/null
+++ b/docs/en/2.0.0/guide/cordova-webview/ios.md
@@ -0,0 +1,126 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+Embedding Cordova WebView on iOS
+================================
+
+Beginning with Cordova 1.4, you can use Cordova as a component in your iOS applications. This component is code-named "Cleaver".
+
+New Cordova-based applications created using the Xcode template provided in Cordova 1.4 or greater use Cleaver, and this template is considered the reference implementation for Cleaver.
+
+Beginning with Cordova 2.0.0, we only support the sub-project based Cleaver implementation from now on.
+
+Prerequisites
+-------------
+
+1. **Cordova 2.0.0** or greater
+2. **Xcode 4.3** or greater
+3. `Cordova.plist` file
+
+
+Adding Cleaver to your Xcode project (CordovaLib sub-project)
+-------------------------------------------------------------
+
+0. **Install** Cordova
+1. **Copy** the `Cordova.plist` file into your project folder on disk
+2. **Drag and drop** the `Cordova.plist` file into the Project Navigator of Xcode
+3. **Choose** the radio-button **"Create groups for any added folders"**
+4. Press the key combination **Option-Command-A**, which should drop down a sheet to add files to your project (the **"Add Files..." sheet**). Make sure the **"Created groups for any added folders"** radio-button is selected
+5. Press the key combination **Shift-Command-G**, which should drop down another sheet for you to go to a folder (the **"Go to the folder:" sheet**)
+6. Enter `~/Documents/CordovaLib/` in the **"Go to the folder:" sheet** and then press the **"Go"** button
+7. Select the `VERSION` file in the the **"Add Files..." sheet**
+8. Press the **"Add"** button in the **"Add Files..." sheet**
+9. Press the key combination **Option-Command-A**, which should drop down a sheet to add files to your project (the **"Add Files..." sheet**). Make sure the **"Created groups for any added folders"** radio-button is selected
+10. Press the key combination **Shift-Command-G**, which should drop down another sheet for you to go to a folder (the **"Go to the folder:" sheet**)
+11. Enter `~/Documents/CordovaLib/CordovaLib.xcodeproj` in the **"Go to the folder:" sheet** and then press the **"Go"** button
+12. Press the **"Add"** button in the **"Add Files..." sheet**
+13. Select `CordovaLib.xcodeproj` in the Project Navigator
+14. Press the key combination **Option-Command-1** to show the **File Inspector**
+15. Choose **"Relative to CORDOVALIB"** in the **File Inspector** for the drop-down menu for **Location** 
+16. Click on the **project icon** in the Project Navigator, select your **Project**, then select the **"Build Settings"** tab
+17. Add `-all_load` and `-Obj-C` - for the **"Other Linker Flags"** value
+18. Click on the **project icon** in the Project Navigator, select your **Target**, then select the **"Build Phases"** tab
+19. Expand **"Link Binaries with Libraries"** 
+20. Click on the **"+" button**, and add these **frameworks** (and optionally in the Project Navigator, **move** them under the Frameworks group):
+
+        AddressBook.framework
+        AddressBookUI.framework
+        AudioToolbox.framework
+        AVFoundation.framework
+        CoreLocation.framework
+        MediaPlayer.framework
+        QuartzCore.framework
+        SystemConfiguration.framework
+        MobileCoreServices.framework
+        CoreMedia.framework
+
+21. Expand **"Target Dependencies"** - the top box labeled like this if you have multiple boxes!
+22. Click on the **"+" button**, and add the `CordovaLib` build product
+23. Expand **"Link Binaries with Libraries"** - the top box labeled like
+    this if you have multiple boxes!
+24. Click on the **"+" button**, and add `libCordova.a`
+
+Using CDVViewController in your code
+------------------------------------
+
+1. Add this **header**:
+
+        #import <Cordova/CDVViewController.h>
+
+2. Instantiate a **new** `CDVViewController`, and retain it somewhere: 
+
+        CDVViewController* viewController = [CDVViewController new];
+
+3. (_OPTIONAL_) Set the `wwwFolderName` property (defaults to `"www"`):
+
+        viewController.wwwFolderName = @"myfolder";
+
+4. (_OPTIONAL_) Set the `startPage` property (defaults to `"index.html"`):
+
+        viewController.startPage = @"mystartpage.html";
+
+5. (_OPTIONAL_) Set the `useSplashScreen` property (defaults to `NO`):
+
+        viewController.useSplashScreen = YES;
+
+6. Set the **view frame** (always set this as the last property):
+
+        viewController.view.frame = CGRectMake(0, 0, 320, 480);
+
+7. **Add** Cleaver to your view:
+
+        [myView addSubview:viewController.view];
+
+Adding your HTML, CSS and JavaScript assets
+-------------------------------------------
+
+1. Create a **new folder** in your project **on disk**, for example, name it `www`
+2. Put your **HTML, CSS and JavaScript assets** into this folder
+3. **Drag and drop** the folder into the Project Navigator of Xcode
+4. **Choose** the radio-button **"Create folder references for any added folders"**
+5. **Set the appropriate `wwwFolderName` and `startPage` properties** for the folder you created in **(1)** or use the defaults (see previous section) when you instantiate the `CDVViewController`.
+
+        /*
+         if you created a folder called 'myfolder' and
+         you want the file 'mypage.html' in it to be 
+         the startPage
+        */
+        viewController.wwwFolderName = @"myfolder";
+        viewController.startPage = @"mypage.html"
+

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/getting-started/android/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/getting-started/android/index.md b/docs/en/2.0.0/guide/getting-started/android/index.md
new file mode 100644
index 0000000..a8e14a8
--- /dev/null
+++ b/docs/en/2.0.0/guide/getting-started/android/index.md
@@ -0,0 +1,137 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+Getting Started with Android
+============================
+
+This guide describes how to set up your development environment for Cordova and run a sample application.  Note that Cordova used to be called PhoneGap, so some of the sites still use the old PhoneGap name.
+
+
+1. Requirements
+---------------
+
+- Eclipse 3.4+
+
+
+2. Install SDK + Cordova
+------------------------
+
+- Download and install [Eclipse Classic](http://www.eclipse.org/downloads/)
+- Download and install [Android SDK](http://developer.android.com/sdk/index.html)
+- Download and install [ADT Plugin](http://developer.android.com/sdk/eclipse-adt.html#installing)
+- Download the latest copy of [Cordova](http://phonegap.com/download) and extract its contents. We will be working with the Android directory.
+
+ 3. Setup New Project
+---------------------
+
+- Launch Eclipse, and select menu item **New Project**
+    ![](img/guide/getting-started/android/step_1.jpg)
+- Then specify new application project
+    ![](img/guide/getting-started/android/step_2.jpg)
+- Then speciy an Application Name, a Project Name and Package Name with Namespace
+    ![](img/guide/getting-started/android/step_3.jpg)
+- Then select a graphic
+    ![](img/guide/getting-started/android/step_4.jpg)
+- Then Create a Blank Activity
+    ![](img/guide/getting-started/android/step_5.jpg)
+- Make sure the activity doesn't inherit from anything.  You most likely won't have PhoneGap on your Eclipse Workspace.  Once this is done, click finish
+    
+- In the root directory of your project, create two new directories:
+ 	- **/libs**
+ 	- **assets/www**
+- Copy **cordova-1.9.0.js** from your Cordova download earlier to **assets/www**
+- Copy **cordova-1.9.0.jar** from your Cordova download earlier to **/libs**
+- Copy **xml** folder from your Cordova download earlier to **/res**
+
+- Verify that **cordova-1.9.0.jar** is listed in the Build Path for your project. Right click on the /libs folder and go to **Build Paths/ &gt; Configure Build Path...**. Then, in the Libraries tab, add **cordova-1.9.0.jar** to the project. If Eclipse is being temperamental, you might need to refresh (F5) the project once again.
+
+    ![](img/guide/getting-started/android/buildPath.jpg)
+
+- Edit your project's main Java file found in the **src** folder in Eclipse:
+	- Add **import org.apache.cordova.*;**
+	- Change the class's extend from **Activity** to **DroidGap**
+	- Replace the **setContentView()** line with **super.loadUrl("file:///android_asset/www/index.html");**	
+
+	![](img/guide/getting-started/android/javaSrc.jpg)
+	
+- Right click on AndroidManifest.xml and select **Open With &gt; Text Editor**
+- Paste the following permissions between the **&lt;uses-sdk.../&gt;** and **&lt;application.../&gt;** tags.
+
+        <supports-screens 
+            android:largeScreens="true" 
+            android:normalScreens="true" 
+            android:smallScreens="true" 
+            android:resizeable="true" 
+            android:anyDensity="true" />
+        <uses-permission android:name="android.permission.VIBRATE" />
+        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
+        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
+        <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
+        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
+        <uses-permission android:name="android.permission.INTERNET" />
+        <uses-permission android:name="android.permission.RECEIVE_SMS" />
+        <uses-permission android:name="android.permission.RECORD_AUDIO" />
+        <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
+        <uses-permission android:name="android.permission.READ_CONTACTS" />
+        <uses-permission android:name="android.permission.WRITE_CONTACTS" />
+        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
+        <uses-permission android:name="android.permission.GET_ACCOUNTS" />
+        <uses-permission android:name="android.permission.BROADCAST_STICKY" />
+*Note You are adding a blanket list of permissions to your application. You should remove permissions you aren't using before submitting your application to Google Play.
+- Support orientation changes by pasting the following inside the **&lt;activity&gt;** tag.
+
+        android:configChanges="orientation|keyboardHidden"
+
+- Your AndroidManifest.xml file should look like
+
+    ![](img/guide/getting-started/android/manifest.png)
+
+4. Hello World
+--------------    
+
+- Create and open a new file named **index.html** in the **assets/www** directory. Paste the following code:
+
+        <!DOCTYPE HTML>
+        <html>
+        <head>
+        <title>Cordova</title>
+        <script type="text/javascript" charset="utf-8" src="cordova-1.9.0.js"></script>
+        </head>
+        <body>
+        <h1>Hello World</h1>
+        </body>
+        </html>
+
+5A. Deploy to Simulator
+-----------------------
+
+- Right click the project and go to **Run As &gt; Android Application**
+- Eclipse will ask you to select an appropriate AVD. If there isn't one, then you'll need to create it.
+
+
+5B. Deploy to Device
+--------------------
+
+- Make sure USB debugging is enabled on your device and plug it into your system. (**Settings &gt; Applications &gt; Development**)
+- Right click the project and go to **Run As &gt; Android Application**
+
+
+Done!
+-----

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/getting-started/bada/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/getting-started/bada/index.md b/docs/en/2.0.0/guide/getting-started/bada/index.md
new file mode 100644
index 0000000..aa68e52
--- /dev/null
+++ b/docs/en/2.0.0/guide/getting-started/bada/index.md
@@ -0,0 +1,93 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+Getting Started with Bada
+=========================
+
+This guide describes how to set up your development environment for Cordova and run a sample application.  Note that Cordova used to be called PhoneGap, so some of the sites still use the old PhoneGap name.
+
+1. Requirements
+---------------
+
+- Windows
+- You need the bada 1.2 SDK to use cordova-bada (which is no longer available on Samsung&apos;s website)
+
+2. Install SDK + Cordova
+-------------------------
+
+- Download and install the [Bada SDK](http://developer.bada.com) (Windows only). 
+- Donwload the latest copy of [Cordova](http://phonegap.com/download) and extract its contents. We will be working with the bada directory.
+
+
+3. Setup New Project
+--------------------
+- In Bada IDE, select _File_ -> Import project -> Bada C++ / Flash Project. 
+    - Note: Bada 1.2 select "Bada Application Project"
+    
+    ![](img/guide/getting-started/bada/import_bada_project.png)
+
+- Make sure "Select root directory is checked" and then click Browse
+- Browse to Cordova bada project folder (bada for 1.2 and bada-wac for 2.x) and select it. Make sure "Copy projects into workspace is checked"
+    
+    ![](img/guide/getting-started/bada/import_bada_project.png)
+
+- Click "Finish"
+
+    ![](img/guide/getting-started/bada/bada_project.png)
+ 
+4. Hello World
+--------------
+
+**Bada 2.x**: Your HTML/CSS/Javascript code lives under the Res/ folder. Make sure your index.html contains the following two lines in the <head> section.
+
+
+        <link href="osp://webapp/css/style.css" rel="stylesheet" type="text/css" />
+        <script type="text/javascript" src="osp://webapp/js/webapp_core.js"></script>
+
+**Bada 1.2**: Your HTML/CSS/Javascript code lives under the Res/ folder. Make sure your index.html contains the following line.
+
+        <script type="text/javascript" src="cordova/cordova.js"> </script>
+
+5A. Deploy to Simulator
+-----------------------
+
+- **Bada 2.x**: Right click on your project s folder and select Run As -&gt; bada Emulator Web Application 
+    
+    ![](img/guide/getting-started/bada/bada_1_run.png)
+
+- **Bada 1.2**: Right click on your project&apos; folder and select Build configurations -&gt; Set Active -&gt; Simulator-Debug
+
+    ![](img/guide/getting-started/bada/bada_set_target.png)
+
+- Right click on your project&apos;s folder and select Run As -&gt; bada Simulator Application. You need to close the emulator every time you update your app!
+
+5B. Deploy to Device
+--------------------
+
+- Make sure your device is properly configured 
+
+**Bada 2.x**: Right click on your project&apos;s folder and select Run As -&gt; bada Target Web Application
+
+**Bada 1.2**:
+- Right click on your project&apos;s folder and select Build configurations -> Set Active -> Target-Debug
+- Right click on your project&apos;s folder and select Run As -> bada Target Application. You need to close the emulator every time you update your app!
+
+
+Done!
+-----

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/getting-started/blackberry/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/getting-started/blackberry/index.md b/docs/en/2.0.0/guide/getting-started/blackberry/index.md
new file mode 100644
index 0000000..178cba1
--- /dev/null
+++ b/docs/en/2.0.0/guide/getting-started/blackberry/index.md
@@ -0,0 +1,101 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+Getting Started with Blackberry
+============================
+
+Cordova for BlackBerry makes use of the [BlackBerry WebWorks framework](https://bdsc.webapps.blackberry.com/html5). BlackBerry WebWorks tooling is available for Windows or Mac environments. WebWorks applications can ONLY be deployed to BlackBerry devices running OS 5.0 and higher or the BlackBerry PlayBook operating system.
+
+1.  Requirements
+---------------
+
+- Windows XP (32-bit) or Windows 7 (32-bit and 64-bit) or Mac OSX 10.6.4+
+- Java Development Kit (JDK)
+    - Windows: [Oracle JDK](http://www.oracle.com/technetwork/java/javase/downloads/index.html#jdk) (32-Bit Version)
+    - Mac OS X: Versions prior to Mac OS X 10.7 provided Java by default.  OS X 10.7+ requires installation of [Java](http://support.apple.com/kb/DL1421).
+-   Apache Ant
+    - Windows: [Apache Ant](http://ant.apache.org/bindownload.cgi).
+    - Mac OS X: Apache Ant is bundled with Java install.
+
+2.  Install SDK + Cordova
+-------------------------
+
+- PlayBook development requires the [Adobe Air SDK](http://www.adobe.com/devnet/air/air-sdk-download.html)
+- Download and install one or more of the WebWorks SDKs. Keep note of the install directory.
+    - Smartphone Development: [BlackBerry WebWorks Smartphone SDK](https://bdsc.webapps.blackberry.com/html5/download/sdk)
+    - PlayBook Development: [BlackBerry WebWorks Tablet OS SDK](https://bdsc.webapps.blackberry.com/html5/download/sdk)
+- Download the latest copy of [Cordova](http://phonegap.com/download) and extract its contents.
+
+3.  Setup New Project
+--------------------
+
+- Open up a command prompt/terminal and navigate to where you extracted Cordova.
+- There is a directory for each platform that Cordova supports.  CD into the blackberry directory.
+- The blackberry directory contains two directories, `sample` and `www`.  The `sample` folder contains a complete Cordova project.  Copy the `sample` folder to another location on your computer.
+- Change to the newly created directory.
+- Open up the project.properties file with your favorite editor and edit the entries for `blackberry.bbwp.dir=` and/or `playbook.bbwp.dir=`. Set the  value(s) to the directory containing the `bbwp` binary in the WebWorks SDK(s) installed earlier.
+
+4.  Hello World
+--------------
+
+Build the Cordova sample project by typing `ant target build` in your command prompt/terminal while you are in your project's directory. Replace `target` with either `blackberry` or `playbook`. Note this is a sample Cordova project and not a basic hello world application. The provided index.html in the www contains example usages of many of the Cordova API.
+
+5A.  Deploy to Simulator
+--------------------------------------
+
+BlackBerry smartphone simulators are only available on Windows. PlayBook simulators require VMWare Player (Windows) or VMWare Fusion (Mac OS X). The WebWorks SDK provides a default simulator. Additional simulators are [available](http://us.blackberry.com/developers/resources/simulators.jsp).
+
+- Open the project.properties file with your favorite editor and customize the following properties.
+    - Smartphone (Optional)
+        - `blackberry.sim.dir` : Path to directory containing simulator. On windows file separator '\' must be escaped '\\\'.
+        - `blackberry.sim.bin` : Name of the simulator executable in the specified directory.
+    - Playbook
+        - `playbook.sim.ip` : IP address of simulator obtained when placing the simulator in developer mode through simulator security settings.
+        - `playbook.sim.password` : Simulator password which can be set through simulator security settings.
+- While in your project directory, in command prompt/terminal type `ant target load-simulator`. Replace `target` with either `blackberry` or `playbook`.  Note, for PlayBook the simulator virtual image must already be started.
+- The application will be installed in the All Applications section in the simulator.  Note, on BlackBerry OS 5 the application is installed in the Downloads folder.
+
+5B.  Deploy to Device (Windows and Mac)
+--------------------------------------
+
+- Deploying to a device requires signing keys which can be obtained from RIM.
+    - Fill out this [form](https://bdsc.webapps.blackberry.com/html5/signingkey). to request signing keys.
+    - Install the signing keys once they have been received:
+        - [Setup Smartphone Signing keys](https://bdsc.webapps.blackberry.com/html5/documentation/ww_publishing/signing_setup_smartphone_apps_1920010_11.html)
+        - [Setup Tablet Signing keys](https://bdsc.webapps.blackberry.com/html5/documentation/ww_publishing/signing_setup_tablet_apps_1920009_11.html)
+- Install [BlackBerry Desktop Sofware](http://us.blackberry.com/apps-software/desktop/) to be able to install a signed application to a smartphone device attached via USB.
+- Open the project.properties file with your favorite editor and customize the following properties:
+    - Smartphone (Optional)
+        - `blackberry.sigtool.password` : Password used when code signing keys were registered.  If not specified, a prompt will occur.
+    - Playbook (Required)
+        - `playbook.sigtool.csk.password` : Signing key password.
+        - `playbook.sigtool.p12.password` : Signing key password.
+        - `playbook.device.ip` : IP address of device obtained when placing the device in developer mode through device security settings.
+        - `playbook.device.password` : Device password which is set through device security settings.
+- While in your project directory, in command prompt/terminal type `ant target load-device`. Replace `target` with either `blackberry` or `playbook`.
+- The application will be installed in the All Applications section in the device.  Note, on BlackBerry OS 5 the application is installed in the Downloads folder.
+
+Additional Information
+----------------------
+
+The following articles provide help to issues you may encounter when developing a Cordova application which is based on the BlackBerry WebWorks framework.
+
+- [BlackBerry WebWorks Development Pitfalls](http://supportforums.blackberry.com/t5/Web-and-WebWorks-Development/Common-BlackBerry-WebWorks-development-pitfalls-that-can-be/ta-p/624712)
+- [Best practices for packaging WebWorks applications](https://bdsc.webapps.blackberry.com/html5/documentation/ww_developing/bestpractice_compiling_ww_apps_1873324_11.html)
+

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/getting-started/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/getting-started/index.md b/docs/en/2.0.0/guide/getting-started/index.md
new file mode 100644
index 0000000..ac9b754
--- /dev/null
+++ b/docs/en/2.0.0/guide/getting-started/index.md
@@ -0,0 +1,29 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+Getting Started Guides
+======================
+
+- Getting Started with Android
+- Getting Started with Blackberry
+- Getting Started with iOS
+- Getting Started with Symbian
+- Getting Started with WebOS
+- Getting Started with Windows Phone
+- Getting Started with Bada

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/getting-started/ios/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/getting-started/ios/index.md b/docs/en/2.0.0/guide/getting-started/ios/index.md
new file mode 100644
index 0000000..db3e0b4
--- /dev/null
+++ b/docs/en/2.0.0/guide/getting-started/ios/index.md
@@ -0,0 +1,98 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+Getting Started with iOS
+========================
+
+This guide describes how to set up your development environment for Apache Cordova and run a sample Apache Cordova application.
+
+Requirements
+------------
+- Xcode 4.x
+- Intel-based computer with Mac OS X Lion or greater (10.7+)
+- Necessary for installing on device:
+    - Apple iOS device (iPhone, iPad, iPod Touch)
+    - iOS developer certificate
+
+Install the iOS SDK and Apache Cordova
+----------------------------------
+
+- Install Xcode from the [Mac App Store](http://itunes.apple.com/us/app/xcode/id497799835?mt=12)
+- Download the latest release of [Apache Cordova](http://phonegap.com/download)
+    - extract its contents
+    - Apache Cordova iOS is found under `lib/ios`
+
+Setup New Project
+-----------------
+
+- Copy the **bin** folder (either from the source, or from the .dmg) to a location on your hard drive
+
+    ![](img/guide/getting-started/ios/bin_folder.png)
+
+- Launch **Terminal.app**
+- Drag the copied **bin** folder to the **Terminal.app** icon in your Dock, it should launch a new Terminal window
+- Type in `./create <project_folder_path> <bundle_id> <project_name>` then press **"Enter"**
+
+        <project_folder_path> is the path to your new Cordova iOS project (it must be empty if it exists)
+        <package_name> is the package name, following reverse-domain style convention
+        <project_name> is the project name
+        
+    ![](img/guide/getting-started/ios/bin_create_project.png)
+
+
+- **Locate** your new project folder that you just created
+- **Launch** the .xcodeproj file in the folder
+
+Hello World
+-----------
+
+- Select the folder named `www` in the Xcode _Project Navigator_
+- Select the file `index.html`
+- Add the following after `<body>`:
+
+        <h1>Hello World</h1>
+
+You can also add any associated JavaScript and CSS files there as well.
+    
+Deploy to Simulator
+-------------------
+
+- Change the **Target** in the **Scheme** drop-down menu on the toolbar to **"HelloWorld"** (your project name)
+- Change the **Active SDK** in the **Scheme** drop-down menu on the toolbar to **iOS [version] Simulator**
+- Select the **Run** button in your project window's toolbar
+
+Deploy to Device
+----------------
+
+- Open `HelloWorld-Info.plist`, under the **Supporting Files** group
+- Change **BundleIdentifier** to the identifier provided by Apple or your own bundle identifier
+    - If you have a developer license, you can run the [Assistant](http://developer.apple.com/iphone/manage/overview/index.action) to register your app
+- Change the **Active SDK** in the Scheme drop-down menu on the toolbar to **[Your Device Name]**
+    - You will need to have your device connected via USB
+- Select the **Run** button in your project window's toolbar
+
+    ![](img/guide/getting-started/ios/HelloWorldiPhone4.png)
+
+Build Your App
+--------------
+
+You now have an Xcode project setup and you can build and run on the Simulator and device.
+It is important to understand that you do not need to use Xcode to write your web application.
+You can use your favourite text editor and simply rebuild your project using Xcode, or the [command-line tools](guide_command-line_index.md.html#Command-Line%20Usage) in your project folder (under the **cordova** sub-folder)
+Xcode will automatically detect the files that are changed in `www`.

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/getting-started/symbian/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/getting-started/symbian/index.md b/docs/en/2.0.0/guide/getting-started/symbian/index.md
new file mode 100644
index 0000000..26ff6e4
--- /dev/null
+++ b/docs/en/2.0.0/guide/getting-started/symbian/index.md
@@ -0,0 +1,78 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+Getting Started with Symbian
+============================
+
+This guide describes how to set up your development environment for Cordova and run a sample application.  Note that Cordova used to be called PhoneGap, so some of the sites still use the old PhoneGap name.
+
+Video Tutorials:
+----------------
+
+- [Cordova Installer - Xcode 4 Template](http://www.youtube.com/v/R9zktJUN7AI?autoplay=1)
+
+
+1. Requirements
+---------------
+
+- Windows, OS X, or Linux
+
+There are also [QT for Symbian](http://wiki.phonegap.com/w/page/16494811/PhoneGap-Symbian-%28Qt%29) and [Symbian with Sony Ericsson](http://wiki.phonegap.com/w/page/16494782/Getting-Started-with-PhoneGap-Symbian-(WRT-on-Sony-Ericsson)) guides.
+
+
+2. Install SDK + Cordova
+-------------------------
+
+- Download and install [cygwin](http://www.cygwin.com/setup.exe) (Windows only). Make sure you select "make" as it is not included by default
+- Donwload the latest copy of [Cordova](http://phonegap.com/download) and extract its contents. We will be working with the Android directory.
+
+
+3. Setup New Project
+--------------------
+
+- In cygwin, navigate to where you extracted Cordova and go into the Symbian directory</li>
+
+ 
+4. Hello World
+--------------
+
+- Open up index.html located in phonegap/symbian/framework/www with your favourite editor. 
+- In the `body` tag, remove the line `"Build your phonegap app here! Dude!"` and add the line `<h1>Hello World</h1>`
+- In cygwin/terminal, type make. This will produce phonegap-symbian.wrt/app.wgz. 
+
+
+5A. Deploy to Simulator
+-----------------------
+
+- For Mac or Linux you should install [Aptana Studio](http://www.aptana.org/products/studio2/download) and [Nokia WRT Plug-in for Aptana Studio](http://www.forum.nokia.com/info/sw.nokia.com/id/00d62bd8-4214-4c86-b608-5f11b94dad54/Nokia_WRT_Plug_in_for_Aptana_Studio.html). This has a browser-based javascript emulator
+- For Windows you can download the [S60 SDK](http://www.forum.nokia.com/info/sw.nokia.com/id/ec866fab-4b76-49f6-b5a5-af0631419e9c/S60_All_in_One_SDKs.html) which includes the S60 Emulator
+- Load the phonegap-symbian.wrt/app.wgz file into the emulator.
+
+
+5B. Deploy to Device
+--------------------
+
+- Load the phonegap-symbian.wrt/app.wgz file into the device using bluetooth or email.
+
+
+Done!
+-----
+
+You can also checkout more detailed version of this guide [here](http://wiki.phonegap.com/w/page/16494780/Getting-Started-with-Phonegap-Nokia-WRT).
+

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/getting-started/webos/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/getting-started/webos/index.md b/docs/en/2.0.0/guide/getting-started/webos/index.md
new file mode 100644
index 0000000..37ab244
--- /dev/null
+++ b/docs/en/2.0.0/guide/getting-started/webos/index.md
@@ -0,0 +1,79 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+Getting Started with WebOS
+==========================
+
+This guide describes how to set up your development environment for Cordova and run a sample application.  Note that Cordova used to be called PhoneGap, so some of the sites still use the old PhoneGap name.
+
+Video Tutorials:
+----------------
+
+- [Cordova and HP Palm webOS quick start video](http://www.youtube.com/v/XEnAUbDRZfw?autoplay=1)
+- [How to convert iPhone app to a Palm](http://www.youtube.com/v/wWoJfQw79XI?autoplay=1)
+
+
+1. Requirements
+---------------
+
+- Windows, OS X, or Linux
+
+
+2. Install SDK + Cordova
+----------------------------
+
+- Download and install [Virtual Box](http://www.virtualbox.org/)
+- Download and install [WebOS SDK](http://developer.palm.com/index.php?option=com_content&view=article&layout=page&id=1788&Itemid=321/)
+- Download and install [cygwin SDK](http://developer.palm.com/index.php?option=com_content&amp;view=article&amp;layout=page&amp;id=1788&amp;Itemid=321)  (Windows only). Make sure you select "make" as it is not included by default
+- Download the latest copy of [Cordova](http://phonegap.com/download) and extract its contents. We will be working with the webOS directory.
+- Download and install XCode from the [Mac App Store](http://itunes.apple.com/ca/app/xcode/id497799835?mt=12) (OSX only)
+- Download and install Command Line Tools for XCode (OSX only); this can be done by going to XCode's Preferences -> Downloads -> Components and then click install on Command Line Tools
+
+ 
+3. Setup New Project
+--------------------
+
+- Open up terminal/cygwin and navigate to where you extracted your Cordova Download. Go into the webOS directory.
+
+
+4. Hello World
+--------------
+
+In phonegap/webOS/framework/www, open up index.html with your favourite editor. After the body tag add `<h1>Hello World</h1>`
+
+
+5A. Deploy to Simulator
+-----------------------
+
+- Open up your Palm Emulator from your applications folder/start menu.
+- Type `make` in your terminal/cygwin while in the webOS directory.
+
+
+5B. Deploy to Device
+--------------------
+
+- Make sure your device is in [Developer Mode and plug it in.](http://developer.palm.com/index.php?option=com_content&amp;view=article&amp;id=1552&amp;Itemid=59#dev_mode)
+- Type `make` in your terminal/cygwin while in the webOS directory.
+       
+
+Done!
+-----
+
+You can also checkout more detailed version of this guide [here](http://wiki.phonegap.com/w/page/16494781/Getting-Started-with-PhoneGap-webOS).
+

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/getting-started/windows-phone/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/getting-started/windows-phone/index.md b/docs/en/2.0.0/guide/getting-started/windows-phone/index.md
new file mode 100644
index 0000000..4a7374e
--- /dev/null
+++ b/docs/en/2.0.0/guide/getting-started/windows-phone/index.md
@@ -0,0 +1,101 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+Getting Started with Windows Phone
+==================================
+
+This guide describes how to set up your development environment for Cordova and run a sample application.  Note that Cordova used to be called PhoneGap, so some of the sites still use the old PhoneGap name.
+
+Video Tutorials:
+----------------
+
+- [Cordova and Windows Phone quick setup video](http://www.youtube.com/v/wO9xdRcNHIM?autoplay=1)
+- [Cordova and Windows Phone deep dive](http://www.youtube.com/v/BJFX1GRUXj8?autoplay=1)
+
+
+1. Requirements
+---------------
+
+- Windows 7 or Windows Vista with SP2
+
+Note: Running in VM has issues, if you are on a Mac, you will need to setup a bootcamp partition with Windows 7 or Vista
+
+Necessary for Installing on Device and Submitting to Market Place:
+
+- Become an [App Hub member](http://create.msdn.com/en-US/home/membership).
+
+
+2. Install SDK + Cordova
+----------------------------
+
+- Download and install [Windows Phone  SDK](http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=27570/)
+- Download the latest copy of [Cordova](http://phonegap.com/download) and extract its contents. We will be working with the subfolder: lib\windows-phone\
+- copy the file CordovaStarter-x.x.x.zip to the folder : \My Documents\Visual Studio 2010\Templates\ProjectTemplates\
+if you have just installed VisualStudio, you should launch it once to create this folder
+if you prefer, you may add the project instead to the "Silverlight for Windows Phone" subfolder of "Visual C#". This is up to you, and only affects where the project template is shown when creating a new project. Also, You may need to create this folder.
+
+
+
+3. Setup New Project
+--------------------
+
+- Open Visual Studio Express for Windows Phone and choose **New Project**.
+- Select **CordovaStarter**. ( the version number will be displayed in the template description )
+- - note: If you do not see it, you may have to select the top level 'Visual C#' to see it
+- Give your project a name, and select OK.
+
+    ![](img/guide/getting-started/windows-phone/wpnewproj.PNG)
+
+ 
+4. Review the project structure
+-------------------------------
+
+- The 'www' folder contains your Cordova html/js/css and any other resources included in your app.
+- Any content that you add here needs to be a part of the Visual Studio project, and it must be set as content. 
+
+    ![](img/guide/getting-started/windows-phone/wp7projectstructure.PNG)
+
+
+5. Build and Deploy to Emulator
+-------------------------------
+
+- Make sure to have **Windows Phone Emulator** selected in the top drop-down menu.
+- Hit the green **play button** beside the Windows Phone Emulator drop-down menu to start debugging or press F5.
+
+    ![](img/guide/getting-started/windows-phone/wprun.png)
+    ![](img/guide/getting-started/windows-phone/wpfirstrun.PNG)
+
+
+6. Build your project for the device
+------------------------------------
+
+In order to test your application on a device, the device must be registered. Click [here](http://msdn.microsoft.com/en-us/library/gg588378(v=VS.92).aspx) to read documentation on deploying and testing on your Windows Phone.
+
+- Make sure your phone is connected, and the screen is unlocked
+- In Visual Studio, select 'Windows Phone Device' from the top drop-down menu.
+- Hit the green **play button** beside the drop-down menu to start debugging or press F5.
+
+    ![](img/guide/getting-started/windows-phone/wpd.png)
+
+
+Done!
+-----
+
+You can also checkout more detailed version of this guide [here](http://wiki.phonegap.com/w/page/48672055/Getting%20Started%20with%20PhoneGap%20Windows%20Phone%207).
+

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/plugin-development/android/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/plugin-development/android/index.md b/docs/en/2.0.0/guide/plugin-development/android/index.md
new file mode 100644
index 0000000..2fc8761
--- /dev/null
+++ b/docs/en/2.0.0/guide/plugin-development/android/index.md
@@ -0,0 +1,154 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License. You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied. See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+# Developing a Plugin on Android
+
+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 config.xml
+file.
+
+A plugin will consist of at least a single Java class that extends the `Plugin` class. A plugin **must**
+have a method called `execute` that must return a `PluginResult` object. In addition to this, there is a best practice that
+the plugin should handle pause and resume events, and should handle message passing between plugins.
+
+## Plugin Class Mapping 
+
+The JavaScript portion of a plugin always uses the `cordova.exec` method as follows:
+
+    exec(<successFunction>, <failFunction>, <service>, <action>, [<args>]);
+
+This will marshall a request from the WebView to the Android native
+side, more or less boiling down to calling the `action` method on the
+`service` class, with the arguments passed in the `args` Array.
+
+Whether you distribute your plugin as Java file or as a JAR of its own, the plugin must be added to the `config.xml` file in your Cordova-Android application's `res/xml/` folder.
+
+    <plugin name="<service_name>" value="<full_name_including_namespace>"/>
+
+The service name should match what you use in the JavaScript `exec` call, and the value will be the full name of the Java class including the namespace. Without this added, the plugin may compile but 
+will not be reachable by Cordova.
+
+## Writing an Android Java Plugin
+
+We have JavaScript to fire off a plugin request to the native side. We
+have the Android Java plugin mapped properly via the `config.xml` file.
+So what does the final Android Java Plugin class look like?
+
+What gets dispatched to the plugin via JavaScript's `exec` function gets
+passed into the Plugin class's `execute` method. Most `execute`
+implementations look like this:
+
+    public PluginResult execute(String action, JSONArray args, String callbackId) {
+        PluginResult.Status status = PluginResult.Status.OK;
+        String result = "";
+
+        try {
+            if (action.equals("beep")) {
+                this.beep(args.getLong(0));
+            }
+            return new PluginResult(status, result);
+        } catch (JSONException e) {
+            return new PluginResult(PluginResult.Status.JSON_EXCEPTION);
+        }
+    }
+
+Essentially we compare the value of the `action` parameter, and dispatch
+the request off to a (private) method in the class, optionally passing
+some of the parameters to the method.
+
+When catching exceptions and returning errors, it's important that the error we return to JavaScript match the Java exception as much as possible, for clarity.
+
+### Echo Plugin Android Plugin
+
+We would add the following to our config.xml:
+
+    <plugin name="Echo" value="org.apache.cordova.plugin.Echo" />
+
+Then we would add the following file to
+`src/org/apache/cordova/plugin/Echo.java` inside our Cordova-Android
+application:
+
+    package org.apache.cordova.plugin;
+
+    import org.apache.cordova.api.Plugin;
+    import org.apache.cordova.api.PluginResult;
+    import org.json.JSONArray;
+    import org.json.JSONException;
+    import org.json.JSONObject;
+
+    /**
+     * This class echoes a string called from JavaScript.
+     */
+    public class App extends Plugin {
+
+        /**
+         * Executes the request and returns PluginResult.
+         *
+         * @param action        The action to execute.
+         * @param args          JSONArry of arguments for the plugin.
+         * @param callbackId    The callback id used when calling back into JavaScript.
+         * @return              A PluginResult object with a status and message.
+         */
+        public PluginResult execute(String action, JSONArray args, String callbackId) {
+            try {
+                if (action.equals("echo")) {
+                    String echo = args.getString(0); 
+                    if (echo != null && echo.length() > 0) { 
+                        return new PluginResult(PluginResult.Status.OK, echo);
+                    } else {
+                        return new PluginResult(PluginResult.Status.ERROR);
+                    }
+                } else {
+                    return new PluginResult(PluginResult.Status.INVALID_ACTION);
+                }
+            } catch (JSONException e) {
+                return new PluginResult(PluginResult.Status.JSON_EXCEPTION);
+            }
+        }
+    }
+
+Let's take a look at the code. At the top we have all of the necessary
+Cordova `import`s. Our class extends from `Plugin` - very important. The
+one method that the `Plugin` interface demands is the `execute` method.
+The method first compares against `action`: this plugin only supports
+one action, the `echo` action. Any other action will return a
+`PluginResult` with a status of `INVALID_ACTION` - this will translate
+into an error callback invocation on the JavaScript side. Next, we grab
+the echo string using the `getString` method on our `args`, 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 `null`, and make sure it is not
+a zero-length string. If it is, we return a `PluginResult` with an
+`ERROR` status (which, by now, you should now will invoke the error
+callback). If all of those checks pass, then we return a `PluginResult`
+with an `OK` status, and pass in the `echo` string we received in the
+first place as a parameter. This will finally translate into a success
+callback invocation on the JavaScript side. It will also pass the `echo`
+parameter as a parameter into the JavaScript success callback function.
+
+## Debugging Plugins
+
+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 Dev Tools is known to allow source code attachment to JAR dependencies, this is not fully supported at this time.
+
+## Common Pitfalls
+
+* Plugins have access to a `CordovaInterface` object. This object has access to the Android `Activity` that is running the application. This is the `Context` required to launch
+a new Android `Intent`. The `CordovaInterface` allows plugins to start an `Activity` for a result, and to set the callback plugin for when the `Intent` comes back to the application. This is important, since the
+`Intent`s system is how Android communicates between processes.
+* Plugins do not have direct access to the `Context` as they have in the past. The legacy `ctx` member is deprecated, and will be removed six months after 2.0 is released. All the methods that `ctx` has exist on the `Context`, so both `getContext()` and `getActivity()` are capable of returning the proper object required.
+* Avoid calling JavaScript using `webView.loadUrl()`. The reason we have a callback server is to allow JavaScript execution to be thread-safe, and `loadUrl` explicitly interrupts the UI thread, and can affect the usability of your plugin.

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/plugin-development/bada/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/plugin-development/bada/index.md b/docs/en/2.0.0/guide/plugin-development/bada/index.md
new file mode 100644
index 0000000..258bb23
--- /dev/null
+++ b/docs/en/2.0.0/guide/plugin-development/bada/index.md
@@ -0,0 +1,74 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+Developing a Plugin on Bada
+===========================
+
+Plugins are only supported on Bada 2.0 and above. Bada 1.2 does not support plugins.
+
+The Bada implementation is a full javascript implementation. Therefore, adding a custom plugin involves updating CordovaJS with your plugin code. Follow these steps to add a simple _Hello World_ plugin:
+
+1. Clone the CordovaJS repository
+
+        git clone https://git-wip-us.apache.org/repos/asf/incubuator-cordova-js.git
+
+2. Create a new javascript file under __lib/bada/plugin/bada/__ and name it _HelloWorld.js_. Add the following content:
+
+        function HelloWorld() {
+        }
+
+        HelloWorld.prototype.printHello = function(success, fail, arg) {
+            alert(Osp.Core.StringHelper('Hello %1', arg[0]));
+        }
+
+        module.exports = new HelloWorld();
+
+3. Add a link to your newly created plugin in __lib/bada/platform.js__ under the objects property:
+    
+        objects: {
+            ...
+            HelloWorld: {
+                'cordova/plugin/bada/HelloWorld' 
+            },
+            ...
+        }
+        ...
+4. Update the plugin list under __lib/bada/exec.js__ to include your plugin
+
+        var plugins = {
+            ...
+            "HelloWorld": require('cordova/plugin/bada/HelloWorld')
+        };
+5. Now you can write your user-facing javascript however you like but remember that in order for your plugin to execute you need to call the following method
+
+        exec(succes, fail, 'HelloWorld', 'printHello', ['Jackson!']);
+
+    success is the success callback that gets executed when the plugin succeeds
+    fail is the failure callback that gets executed if the plugin fails
+    'HelloWorld' is the name of your plugin
+    'printHello' is your plugin action
+    Finally, the last argument is your plugin parameters (if any).
+
+6. Run the following command to generate the new common javascript (make sure you have the jake npm module installed)
+
+        jake
+
+7. Copy the newly generated javascript under __pkg/cordova.bada.js__ to your Bada project under __Res/js__
+
+6. That is it! You can now add new Bada plugins and implement the many features that are not currently supported by Cordova Bada.

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/plugin-development/blackberry/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/plugin-development/blackberry/index.md b/docs/en/2.0.0/guide/plugin-development/blackberry/index.md
new file mode 100644
index 0000000..03cdde8
--- /dev/null
+++ b/docs/en/2.0.0/guide/plugin-development/blackberry/index.md
@@ -0,0 +1,138 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+Developing a Plugin on BlackBerry
+=================================
+
+## How to make the Echo plugin on Blackberry
+
+In this article, we will explore how to develop the Echo plugin on BlackBerry. If you haven't read the
+top level article about the JavaScript part of the plugin, it would be best if you read that first
+and then this article. In addition, please download the [Cordova Blackberry repo](https://git-wip-us.apache.org/repos/asf?p=incubator-cordova-blackberry-webworks.git;a=summary).
+
+To note, the Corodova-BlackBerry project allows you to deploy to BlackBerry devices like the 
+Torch, Bold, etc and as well as the Playbook. There exists a distinction between deploying to
+normal BlackBerry hand held devices (ie, Torch and Bold) and the Playbook. The code base between
+the two are separate so when you develop for one, you have to duplicate your efforts for the other!
+Therefore in this article, the focus will be on the hand held devices and not the tablet. In the future,
+this guide should cover both platforms.
+
+Continuing on from the previous article, the Echo plugin is essentially returning whatever message a user 
+provides to the `window.echo` function. 
+
+The Echo function:
+
+    window.echo = function(str, callback) {
+            cordova.exec(callback, function(err) {
+                callback('Nothing to echo.');
+            }, "Echo", "echo", [str]);
+        };
+
+## Modifying plugins.xml
+
+This file resides in your project's www folder and contains all of the references to the plugins that 
+your Cordova project uses. We are going to add an additional reference so that when cordova.exec is called,
+Cordova will know how to map the "Echo" argument of `cordova.exec` to the Echo class that we want to write natively.
+
+    <plugins>
+      ...
+      <plugin name="Echo" value="org.apache.cordova.echo.Echo"/>
+      ...
+    </plugins>
+
+## Adding Echo.java
+
+If you notice the structure of the value attribute, you'll see a defined path that leads to the Echo
+plugin. In the root folder of the Cordova BlackBerry Webworks repo, look for a folder called framework.
+This folder contains all of the source code that runs natively on the BlackBerry. cd into the folder 
+structure until you reach the path: `framework/ext/src/org/apache/cordova`. At this point, you'll see
+all of the plugin folders and inside each folder is the plugins' source code. So, we will add
+the folder echo to `framework/ext/src/org/apache/cordova/echo` and create a file called `Echo.java`
+at `framework/ext/src/org/apache/cordova/echo/Echo.java`.
+
+## Writing Echo.java
+
+The basic idea of writing a plugin is to create a class that extends the Plugin class and have
+a method called execute to return a PluginResult class. Any call to cordova.exec will pass in 
+the action that we want 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.
+
+    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;
+    import org.apache.cordova.util.Logger;
+    /**
+     * 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 {
+                    JSONObject echoObj = new JSONObject();
+                    String theMsg = args.getString(0);
+                    if(theMsg.length()>0){   
+                        result = new PluginResult(PluginResult.Status.OK, theMsg);
+                    }else{
+                        result = new PluginResult(PluginResult.Status.ERROR, theMsg);
+                    }
+                } catch (JSONException e) {
+                    result = new PluginResult(PluginResult.Status.JSON_EXCEPTION, e.getMessage());
+                }
+            }
+
+            return result;
+        }
+
+    }
+
+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, "echo" so we will be only checking for 
+that. If our plugin had more actions, it's simply a matter of adding more if-conditionals to check
+for those actions.
+
+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 `String theMsg = args.getString(0);`.
+
+We will do some error checking and if the message looks okay, we will instantiate a new PluginResult with
+an ok status: PluginResult.Status.OK and return the message: theMsg. After this, we will then return the 
+result which will then pass back to JavaScript to be fired in the success callback. If something should fail, 
+we can return various status exceptions like PluginResult.Status.ERROR, PluginResult.Status.JSON_EXCEPTION,
+or PluginResult.Status.INVALID_ACTION. When these types of results are passed back, they will fire the fail 
+callback in JavaScript. 
+
+## Updating the .jar in your project's www folder
+
+The addition of the Echo.java needs to be updated in your project so to build the .jar file, cd
+to the root directory of the BlackBerry Webworks repo. Use the ant command:
+
+    ant update -Dproject.path="~/path_to_my_project"
+
+This will build a new .jar file in the build/ext folder. Copy the `build/ext/cordova.jar` file into your
+project/www/ext folder. 
+
+If all goes well, that should allow you to use the Echo plugin in BlackBerry.

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/plugin-development/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/plugin-development/index.md b/docs/en/2.0.0/guide/plugin-development/index.md
new file mode 100644
index 0000000..ef1cfa4
--- /dev/null
+++ b/docs/en/2.0.0/guide/plugin-development/index.md
@@ -0,0 +1,111 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+# Plugin Development Guide
+
+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 will
+call into. It should be noted that all of the core Cordova APIs are
+implemented using this exact architecture.
+
+This guide will go through each step necessary to write a simple Echo
+Plugin. The Echo Plugin will pass a string from JavaScript and send it
+into the native environment for the supported platforms. The native code
+will then return the same string back into the callbacks inside the
+plugin's JavaScript.
+
+This guide should give anyone the necessary overview and level of
+detail to write more complex plugins.
+
+## JavaScript
+
+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.
+
+You can structure your plugin's JavaScript however you like. The one
+thing you _must_ use to communicate between the Cordova JavaScript
+ and native environments is the `cordova.exec` function. Here is an example:
+
+    cordova.exec(function(winParam) {}, function(error) {}, "service",
+                 "action", ["firstArgument", "secondArgument", 42,
+                 false]);
+
+The parameters explained in more detail:
+
+1. `function(winParam) {}` - Success function callback. Assuming your
+   `exec` call completes successfully, this function will be invoked
+    (optionally with any parameters you pass back to it)
+2. `function(error) {}` - Error function callback. If the operation does
+   not complete successfully, this function will be invoked (optionally
+   with an error parameter)
+3. `"service"` - The service name to call into on the native side. This
+   will be mapped to a native class. More on this in the native guides
+   below
+4. `"action"` - The action name to call into. This is picked up by the
+   native class receiving the `exec` call, and, depending on the
+   platform, essentially maps to a class's method. For more detail
+   please check out the native guides located at the end of this article.
+5. `[/* arguments */]` - Arguments to get passed into the native
+   environment
+
+### Echo Plugin JavaScript Example
+
+    window.echo = function(str, callback) {
+        cordova.exec(callback, function(err) {
+            callback('Nothing to echo.');
+        }, "Echo", "echo", [str]);
+    };
+
+Let's dive into this. The plugin attaches itself to `window`,
+specifically to the `echo` function. Plugin users would then use it as
+follows:
+
+    window.echo("echome", function(echoValue) {
+        alert(echoValue == "echome"); // should alert true.
+    });
+
+First, let's take a look at the last three arguments to the `exec`
+function. We will be calling the `Echo` "service", requesting the `echo`
+"action", and passing an array of arguments containing the echo string,
+which is the first parameter into the `window.echo` function.
+
+The success callback passed into `exec` is simply a reference to the
+callback function that `window.echo` 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.
+
+## Native
+
+Once you have defined a JavaScript for your plugin, you need to
+complement it with at least one native implementation. Below are
+specific guides for each platform Cordova supports. The below guides
+will continue on building the simple Echo Plugin example we started in
+this guide.
+
+- Developing a Plugin on Android
+- Developing a Plugin on Bada
+- Developing a Plugin on BlackBerry
+- Developing a Plugin on iOS
+- Developing a Plugin on webOS
+- Developing a Plugin on Windows Phone

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/plugin-development/ios/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/plugin-development/ios/index.md b/docs/en/2.0.0/guide/plugin-development/ios/index.md
new file mode 100644
index 0000000..a39d4f8
--- /dev/null
+++ b/docs/en/2.0.0/guide/plugin-development/ios/index.md
@@ -0,0 +1,157 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements. See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership. The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License. You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied. See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+# Developing a Plugin on iOS
+
+Writing a plugin requires an understanding of the architecture of Cordova-iOS. Cordova-iOS consists of a UIWebView where intercept commands passed in as url changes. These plugins are represented as class mappings in the Cordova.plist file, under the Plugins key.
+
+A plugin is an Objective-C class that extends the `CDVPlugin` class.
+
+## Plugin Class Mapping 
+
+The JavaScript portion of a plugin always uses the `cordova.exec` method as follows:
+
+    exec(<successFunction>, <failFunction>, <service>, <action>, [<args>]);
+
+This will marshall a request from the UIWebView to the iOS native side, more or less boiling down to calling the `action` method on the `service` class, with the arguments passed in the `args` Array. 
+
+The `options` parameter for the Objective-C plugin method is being deprecated, and it should not be used. For legacy reasons - the last JavaScript object passed in the `args` Array will be passed in as the `options` dictionary of the method in Objective-C. You must make sure that any JavaScript object that is passed in as an element in the `args` array occurs as the last item in the Array, if not it will throw off the array index of all subsequent parameters of the Array in Objective-C. Only one JavaScript object is supported for the options dictionary, and only the last one encountered will be passed to the native method. It is because of these error-prone reasons that they are being deprecated.
+
+The plugin must be added to `Plugins` key (a Dictionary) of the `Cordova.plist` file in your Cordova-iOS application's project folder.
+
+    <key>service_name</key>
+    <string>PluginClassName</string>
+
+The key `service_name` should match what you use in the JavaScript `exec` call, and the value will be the name of the Objective-C class of the plugin. Without this added, the plugin may compile but will not be reachable by Cordova.
+
+## Writing an iOS Cordova Plugin
+
+We have JavaScript fire off a plugin request to the native side. We have the iOS Objective-C plugin mapped properly via the `Cordova.plist` file. So what does the final iOS Objective-C Plugin class look like?
+
+What gets dispatched to the plugin via JavaScript's `exec` function gets passed into the corresponding Plugin class's `action` method. Most method implementations look like this:
+
+    - (void) myMethod:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
+    {
+        NSString* callbackId = [arguments objectAtIndex:0];
+
+        CDVPluginResult* pluginResult = nil;
+        NSString* javaScript = nil;
+
+        @try {
+            NSString* myarg = [arguments objectAtIndex:1];
+
+            if (myarg != nil) {
+                pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
+                javaScript = [pluginResult toSuccessCallbackString:callbackId];
+            } 
+        } @catch (id exception) {
+            pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_JSON_EXCEPTION messageAsString:[exception reason]];
+            javaScript = [pluginResult toErrorCallbackString:callbackId];
+        }
+
+        [self writeJavascript:javaScript];
+    }
+    
+
+### Echo Plugin iOS Plugin
+
+We would add the following to the `Plugins` key (a Dictionary) of the project's `Cordova.plist` file:
+
+    <key>Echo</key>
+    <string>Echo</string>
+
+Then we would add the following files (`Echo.h` and `Echo.m`) to the Plugins folder inside our Cordova-iOS
+application folder:
+
+    /********* Echo.h Cordova Plugin Header *******/
+
+    #import <Cordova/CDVPlugin.h>
+
+    @interface Echo : CDVPlugin
+
+    - (void) echo:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
+
+    @end
+    
+    /********* Echo.m Cordova Plugin Implementation *******/
+    
+    #import "Echo.h"
+    #import <Cordova/CDVPluginResult.h>
+
+    @implementation Echo
+
+    - (void) echo:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
+    {
+        NSString* callbackId = [arguments objectAtIndex:0];
+
+        CDVPluginResult* pluginResult = nil;
+        NSString* javaScript = nil;
+
+        @try {
+            NSString* echo = [arguments objectAtIndex:1];
+
+            if (echo != nil && [echo length] > 0) {
+                pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:echo];
+                javaScript = [pluginResult toSuccessCallbackString:callbackId];
+            } else {
+                pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR];
+                javaScript = [pluginResult toErrorCallbackString:callbackId];
+            }
+        } @catch (NSException* exception) {
+            pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_JSON_EXCEPTION messageAsString:[exception reason]];
+            javaScript = [pluginResult toErrorCallbackString:callbackId];
+        }
+
+        [self writeJavascript:javaScript];
+    }
+
+    @end
+
+
+Let's take a look at the code. At the top we have all of the necessary Cordova imports. Our class extends from `CDVPlugin` - very important. 
+
+This plugin only supports one action, the `echo` action. First, we grab the `callbackId` parameter, which is always the 0th item in the arguments array. Next, we grab the echo string using the `objectAtIndex` method on our `args`, telling it we want to get the 1st parameter in the arguments array. We do a bit of parameter checking: make sure it is not `nil`, and make sure it is not a zero-length string.
+
+If it is, we return a `PluginResult` with an `ERROR` status. If all of those checks pass, then we return a `PluginResult` with an `OK` status, and pass in the `echo` string we received in the first place as a parameter. Then, we convert the `PluginResult` to JavaScript by calling either the `toSuccessCallbackString` (if it was OK) or `toErrorCallbackString` (if it was an error) methods.
+
+Finally we write the JavaScript back to the UIWebView, which will execute the JavaScript that will callback to success or failure callbacks of the exec method on the JavaScript side. If the success callback was called, it will pass the `echo` parameter as a parameter.
+
+## Advanced Plugin Functionality
+
+See other methods that you can override in:
+
+1. [CDVPlugin.h](https://github.com/apache/incubator-cordova-ios/blob/master/CordovaLib/Classes/CDVPlugin.h)
+2. [CDVPlugin.m](https://github.com/apache/incubator-cordova-ios/blob/master/CordovaLib/Classes/CDVPlugin.m)
+
+For example, you can hook into the pause, resume, app terminate and handleOpenURL events.
+
+## Debugging Plugins
+
+To debug the Objective-C side, you would use Xcode's built in debugger. For JavaScript, you can use [Weinre, an Apache Cordova Project](https://github.com/apache/incubator-cordova-weinre) or [iWebInspector, a third-party utility](http://www.iwebinspector.com/)
+
+## Common Pitfalls
+
+* Don't forget to add your plugin's mapping to Cordova.plist - if you forgot, an error will be printed to the Xcode console log
+* Don't forget to add any hosts you connect to in the [whitelist](guide_whitelist_index.md.html#Domain%20Whitelist%20Guide) - if you forgot, an error will be printed to the Xcode console log
+* If you handle the resume event, and the app resumes, you can hang the app if you send out a JavaScript call that executes a native function, like alerts. To be safe, wrap your JavaScript call in a setTimeout call, with a timeout value of zero:
+
+        setTimeout(function() {
+            // do your thing here!
+        }, 0);
+        
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/plugin-development/webos/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/plugin-development/webos/index.md b/docs/en/2.0.0/guide/plugin-development/webos/index.md
new file mode 100644
index 0000000..a66ef9f
--- /dev/null
+++ b/docs/en/2.0.0/guide/plugin-development/webos/index.md
@@ -0,0 +1,23 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+Developing a Plugin on webOS
+============================
+
+Plugins are currently not supported by the webOS platform.

http://git-wip-us.apache.org/repos/asf/incubator-cordova-docs/blob/fa931b7a/docs/en/2.0.0/guide/plugin-development/windows-phone/index.md
----------------------------------------------------------------------
diff --git a/docs/en/2.0.0/guide/plugin-development/windows-phone/index.md b/docs/en/2.0.0/guide/plugin-development/windows-phone/index.md
new file mode 100644
index 0000000..0f74950
--- /dev/null
+++ b/docs/en/2.0.0/guide/plugin-development/windows-phone/index.md
@@ -0,0 +1,23 @@
+---
+license: Licensed to the Apache Software Foundation (ASF) under one
+         or more contributor license agreements.  See the NOTICE file
+         distributed with this work for additional information
+         regarding copyright ownership.  The ASF licenses this file
+         to you under the Apache License, Version 2.0 (the
+         "License"); you may not use this file except in compliance
+         with the License.  You may obtain a copy of the License at
+
+           http://www.apache.org/licenses/LICENSE-2.0
+
+         Unless required by applicable law or agreed to in writing,
+         software distributed under the License is distributed on an
+         "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+         KIND, either express or implied.  See the License for the
+         specific language governing permissions and limitations
+         under the License.
+---
+
+Developing a Plugin on Windows Phone
+====================================
+
+Coming soon...


Mime
View raw message