cordova-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mwbro...@apache.org
Subject svn commit: r1449255 [26/34] - in /cordova/site/public/docs: en/1.5.0/ en/1.5.0rc1/ en/1.6.0/ en/1.6.0rc1/ en/1.6.1/ en/1.7.0/ en/1.7.0rc1/ en/1.8.0/ en/1.8.0rc1/ en/1.8.1/ en/1.9.0/ en/1.9.0rc1/ en/2.0.0/ en/2.0.0rc1/ en/2.1.0/ en/2.1.0rc1/ en/2.1.0rc...
Date Fri, 22 Feb 2013 23:43:56 GMT
Added: cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_blackberry_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_blackberry_index.md.html?rev=1449255&view=auto
==============================================================================
--- cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_blackberry_index.md.html (added)
+++ cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_blackberry_index.md.html Fri Feb 22 23:42:47 2013
@@ -0,0 +1,255 @@
+<!DOCTYPE html>
+<!--
+    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.
+--><html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width">
+<meta name="generator" content="joDoc">
+<title>Apache Cordova API Documentation</title>
+<link rel="stylesheet" type="text/css" href="index.css">
+<link rel="stylesheet" type="text/css" href="mobile.css" media="only screen and (max-device-width: 1024px)">
+<link rel="stylesheet" type="text/css" href="prettify/prettify.css">
+</head>
+<body>
+        <div id="header">
+            <h1><a href="index.html">Apache <strong>Cordova</strong> Documentation</a></h1>
+            <small>
+                <select><optgroup label="English" value="en">
+<option value="edge">edge</option>
+<option selected value="2.5.0rc1">2.5.0rc1</option>
+<option value="2.4.0rc1">2.4.0rc1</option>
+<option value="2.4.0">2.4.0</option>
+<option value="2.3.0rc2">2.3.0rc2</option>
+<option value="2.3.0rc1">2.3.0rc1</option>
+<option value="2.3.0">2.3.0</option>
+<option value="2.2.0rc2">2.2.0rc2</option>
+<option value="2.2.0rc1">2.2.0rc1</option>
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0rc2">2.1.0rc2</option>
+<option value="2.1.0rc1">2.1.0rc1</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0rc1">2.0.0rc1</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0rc1">1.9.0rc1</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.8.0rc1">1.8.0rc1</option>
+<option value="1.8.0">1.8.0</option>
+<option value="1.7.0rc1">1.7.0rc1</option>
+<option value="1.7.0">1.7.0</option>
+<option value="1.6.1">1.6.1</option>
+<option value="1.6.0rc1">1.6.0rc1</option>
+<option value="1.6.0">1.6.0</option>
+<option value="1.5.0rc1">1.5.0rc1</option>
+<option value="1.5.0">1.5.0</option>
+</optgroup>
+<optgroup label="Japanese" value="jp">
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.7.0">1.7.0</option>
+</optgroup>
+<optgroup label="Korean" value="kr"><option value="2.0.0">2.0.0</option></optgroup></select></small>
+        </div>
+        <div id="subheader">
+            <h1>Developing a Plugin on BlackBerry</h1>
+            <small><select><option value="Developing%2520a%2520Plugin%2520on%2520BlackBerry">Developing a Plugin on BlackBerry</option>
+<option value="Developing%20a%20Plugin%20on%20BlackBerry_how_to_make_the_echo_plugin_on_blackberry">      - How to make the Echo plugin on Blackberry</option>
+<option value="Developing%20a%20Plugin%20on%20BlackBerry_modifying_plugins_xml">      - Modifying plugins.xml</option>
+<option value="Developing%20a%20Plugin%20on%20BlackBerry_adding_echo_java">      - Adding Echo.java</option>
+<option value="Developing%20a%20Plugin%20on%20BlackBerry_writing_echo_java">      - Writing Echo.java</option>
+<option value="Developing%20a%20Plugin%20on%20BlackBerry_updating_the_jar_in_your_project_s_www_folder">      - Updating the .jar in your project's www folder</option></select></small>
+        </div>
+
+        <div id="sidebar">
+            <div class="vertical_divider"></div>
+        <h1>API Reference</h1>
+<ul>
+<li><a href="cordova_accelerometer_accelerometer.md.html#Accelerometer">Accelerometer</a></li>
+<li><a href="cordova_camera_camera.md.html#Camera">Camera</a></li>
+<li><a href="cordova_media_capture_capture.md.html#Capture">Capture</a></li>
+<li><a href="cordova_compass_compass.md.html#Compass">Compass</a></li>
+<li><a href="cordova_connection_connection.md.html#Connection">Connection</a></li>
+<li><a href="cordova_contacts_contacts.md.html#Contacts">Contacts</a></li>
+<li><a href="cordova_device_device.md.html#Device">Device</a></li>
+<li><a href="cordova_events_events.md.html#Events">Events</a></li>
+<li><a href="cordova_file_file.md.html#File">File</a></li>
+<li><a href="cordova_geolocation_geolocation.md.html#Geolocation">Geolocation</a></li>
+<li><a href="cordova_globalization_globalization.md.html#Globalization">Globalization</a></li>
+<li><a href="cordova_inappbrowser_inappbrowser.md.html#InAppBrowser">InAppBrowser</a></li>
+<li><a href="cordova_media_media.md.html#Media">Media</a></li>
+<li><a href="cordova_notification_notification.md.html#Notification">Notification</a></li>
+<li><a href="cordova_splashscreen_splashscreen.md.html#Splashscreen">Splashscreen</a></li>
+<li><a href="cordova_storage_storage.md.html#Storage">Storage</a></li>
+</ul>
+<h1>Guides</h1>
+<ul>
+<li><a href="guide_getting-started_index.md.html#Getting%20Started%20Guides">Getting Started Guides</a></li>
+<li><a href="guide_command-line_index.md.html#Command-Line%20Usage">Command-Line Usage</a></li>
+<li><a href="guide_upgrading_index.md.html#Upgrading%20Guides">Upgrading Guides</a></li>
+<li><a href="guide_project-settings_index.md.html#Project%20Settings">Project Settings</a></li>
+<li><a href="guide_plugin-development_index.md.html#Plugin%20Development%20Guide">Plugin Development Guide</a></li>
+<li><a href="guide_whitelist_index.md.html#Domain%20Whitelist%20Guide">Domain Whitelist Guide</a></li>
+<li><a href="guide_cordova-webview_index.md.html#Embedding%20WebView">Embedding WebView</a></li>
+<li><a href="_index.html">Keyword Index</a></li>
+</ul>
+</div>
+
+        <div id="scrollable">
+            <div id="content">
+                <h1><a name="Developing%20a%20Plugin%20on%20BlackBerry">Developing a Plugin on BlackBerry</a></h1>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20BlackBerry_how_to_make_the_echo_plugin_on_blackberry">How to make the Echo plugin on Blackberry</a>
+</h2>
+
+<p>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 <a class="external" href="https://git-wip-us.apache.org/repos/asf?p=cordova-blackberry-webworks.git;a=summary">Cordova Blackberry repo</a>.</p>
+
+<p>To note, the Cordova-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.</p>
+
+<p>Continuing on from the previous article, the Echo plugin is essentially returning whatever message a user 
+provides to the <code>window.echo</code> function. </p>
+
+<p>The Echo 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>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20BlackBerry_modifying_plugins_xml">Modifying plugins.xml</a>
+</h2>
+
+<p>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 <code>cordova.exec</code> to the Echo class that we want to write natively.</p>
+
+<pre class="prettyprint"><code>&lt;plugins&gt;
+  ...
+  &lt;plugin name="Echo" value="org.apache.cordova.echo.Echo"/&gt;
+  ...
+&lt;/plugins&gt;
+</code></pre>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20BlackBerry_adding_echo_java">Adding Echo.java</a>
+</h2>
+
+<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 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: <code>framework/ext/src/org/apache/cordova</code>. 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 <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>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20BlackBerry_writing_echo_java">Writing Echo.java</a>
+</h2>
+
+<p>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.</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());
+            }
+        }
+
+        return result;
+    }
+
+}
+</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, "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.</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: 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<em>EXCEPTION,
+or PluginResult.Status.INVALID</em>ACTION. When these types of results are passed back, they will fire the fail 
+callback in JavaScript. </p>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20BlackBerry_updating_the_jar_in_your_project_s_www_folder">Updating the .jar in your project's www folder</a>
+</h2>
+
+<p>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:</p>
+
+<pre class="prettyprint"><code>ant update -Dproject.path="~/path_to_my_project"
+</code></pre>
+
+<p>This will build a new .jar file in the build/ext folder. Copy the <code>build/ext/cordova.jar</code> file into your
+project/www/ext folder. </p>
+
+<p>If all goes well, that should allow you to use the Echo plugin in BlackBerry.</p>
+
+            </div>
+        </div>
+
+        <!-- Functionality and Syntax Highlighting -->
+        <script type="text/javascript" src="index.js"></script><script type="text/javascript" src="prettify/prettify.js"></script>
+</body>
+</html>

Added: cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_index.md.html?rev=1449255&view=auto
==============================================================================
--- cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_index.md.html (added)
+++ cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_index.md.html Fri Feb 22 23:42:47 2013
@@ -0,0 +1,229 @@
+<!DOCTYPE html>
+<!--
+    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.
+--><html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width">
+<meta name="generator" content="joDoc">
+<title>Apache Cordova API Documentation</title>
+<link rel="stylesheet" type="text/css" href="index.css">
+<link rel="stylesheet" type="text/css" href="mobile.css" media="only screen and (max-device-width: 1024px)">
+<link rel="stylesheet" type="text/css" href="prettify/prettify.css">
+</head>
+<body>
+        <div id="header">
+            <h1><a href="index.html">Apache <strong>Cordova</strong> Documentation</a></h1>
+            <small>
+                <select><optgroup label="English" value="en">
+<option value="edge">edge</option>
+<option selected value="2.5.0rc1">2.5.0rc1</option>
+<option value="2.4.0rc1">2.4.0rc1</option>
+<option value="2.4.0">2.4.0</option>
+<option value="2.3.0rc2">2.3.0rc2</option>
+<option value="2.3.0rc1">2.3.0rc1</option>
+<option value="2.3.0">2.3.0</option>
+<option value="2.2.0rc2">2.2.0rc2</option>
+<option value="2.2.0rc1">2.2.0rc1</option>
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0rc2">2.1.0rc2</option>
+<option value="2.1.0rc1">2.1.0rc1</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0rc1">2.0.0rc1</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0rc1">1.9.0rc1</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.8.0rc1">1.8.0rc1</option>
+<option value="1.8.0">1.8.0</option>
+<option value="1.7.0rc1">1.7.0rc1</option>
+<option value="1.7.0">1.7.0</option>
+<option value="1.6.1">1.6.1</option>
+<option value="1.6.0rc1">1.6.0rc1</option>
+<option value="1.6.0">1.6.0</option>
+<option value="1.5.0rc1">1.5.0rc1</option>
+<option value="1.5.0">1.5.0</option>
+</optgroup>
+<optgroup label="Japanese" value="jp">
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.7.0">1.7.0</option>
+</optgroup>
+<optgroup label="Korean" value="kr"><option value="2.0.0">2.0.0</option></optgroup></select></small>
+        </div>
+        <div id="subheader">
+            <h1>Plugin Development Guide</h1>
+            <small><select><option value="Plugin%2520Development%2520Guide">Plugin Development Guide</option>
+<option value="Plugin%20Development%20Guide_javascript">      - JavaScript</option>
+<option value="Plugin%20Development%20Guide_native">      - Native</option></select></small>
+        </div>
+
+        <div id="sidebar">
+            <div class="vertical_divider"></div>
+        <h1>API Reference</h1>
+<ul>
+<li><a href="cordova_accelerometer_accelerometer.md.html#Accelerometer">Accelerometer</a></li>
+<li><a href="cordova_camera_camera.md.html#Camera">Camera</a></li>
+<li><a href="cordova_media_capture_capture.md.html#Capture">Capture</a></li>
+<li><a href="cordova_compass_compass.md.html#Compass">Compass</a></li>
+<li><a href="cordova_connection_connection.md.html#Connection">Connection</a></li>
+<li><a href="cordova_contacts_contacts.md.html#Contacts">Contacts</a></li>
+<li><a href="cordova_device_device.md.html#Device">Device</a></li>
+<li><a href="cordova_events_events.md.html#Events">Events</a></li>
+<li><a href="cordova_file_file.md.html#File">File</a></li>
+<li><a href="cordova_geolocation_geolocation.md.html#Geolocation">Geolocation</a></li>
+<li><a href="cordova_globalization_globalization.md.html#Globalization">Globalization</a></li>
+<li><a href="cordova_inappbrowser_inappbrowser.md.html#InAppBrowser">InAppBrowser</a></li>
+<li><a href="cordova_media_media.md.html#Media">Media</a></li>
+<li><a href="cordova_notification_notification.md.html#Notification">Notification</a></li>
+<li><a href="cordova_splashscreen_splashscreen.md.html#Splashscreen">Splashscreen</a></li>
+<li><a href="cordova_storage_storage.md.html#Storage">Storage</a></li>
+</ul>
+<h1>Guides</h1>
+<ul>
+<li><a href="guide_getting-started_index.md.html#Getting%20Started%20Guides">Getting Started Guides</a></li>
+<li><a href="guide_command-line_index.md.html#Command-Line%20Usage">Command-Line Usage</a></li>
+<li><a href="guide_upgrading_index.md.html#Upgrading%20Guides">Upgrading Guides</a></li>
+<li><a href="guide_project-settings_index.md.html#Project%20Settings">Project Settings</a></li>
+<li><a href="guide_plugin-development_index.md.html#Plugin%20Development%20Guide">Plugin Development Guide</a></li>
+<li><a href="guide_whitelist_index.md.html#Domain%20Whitelist%20Guide">Domain Whitelist Guide</a></li>
+<li><a href="guide_cordova-webview_index.md.html#Embedding%20WebView">Embedding WebView</a></li>
+<li><a href="_index.html">Keyword Index</a></li>
+</ul>
+</div>
+
+        <div id="scrollable">
+            <div id="content">
+                <h1><a name="Plugin%20Development%20Guide">Plugin Development Guide</a></h1>
+
+<p>A Cordova plugin bridges a bit of functionality between the WebView
+powering a Cordova application and the native platform the Cordova
+application is running on. Plugins are composed of a single JavaScript
+interface used across all platforms, and native implementations
+following platform-specific Plugin interfaces that the JavaScript will
+call into. It should be noted that all of the core Cordova APIs are
+implemented using this exact architecture.</p>
+
+<p>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.</p>
+
+<p>This guide should give anyone the necessary overview and level of
+detail to write more complex plugins.</p>
+
+<h2>
+<a name="Plugin%20Development%20Guide_javascript">JavaScript</a>
+</h2>
+
+<p>The entry point for any plugin is JavaScript. The reason developers use
+Cordova is so they can use and write JavaScript, not Objective-C,
+not Java, not C#. The JavaScript interface for your plugin is the
+front-facing and arguably most important part of your Cordova plugin.</p>
+
+<p>You can structure your plugin's JavaScript however you like. The one
+thing you <em>must</em> use to communicate between the Cordova JavaScript
+ and native environments is the <code>cordova.exec</code> function. Here is an example:</p>
+
+<pre class="prettyprint"><code>cordova.exec(function(winParam) {}, function(error) {}, "service",
+             "action", ["firstArgument", "secondArgument", 42,
+             false]);
+</code></pre>
+
+<p>The parameters explained in more detail:</p>
+
+<ol>
+<li>
+<code>function(winParam) {}</code> - Success function callback. Assuming your
+<code>exec</code> call completes successfully, this function will be invoked
+(optionally with any parameters you pass back to it)</li>
+<li>
+<code>function(error) {}</code> - Error function callback. If the operation does
+not complete successfully, this function will be invoked (optionally
+with an error parameter)</li>
+<li>
+<code>"service"</code> - 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</li>
+<li>
+<code>"action"</code> - The action name to call into. This is picked up by the
+native class receiving the <code>exec</code> call, and, depending on the
+platform, essentially maps to a class's method. For more detail
+please check out the native guides located at the end of this article.</li>
+<li>
+<code>[/* arguments */]</code> - Arguments to get passed into the native
+environment</li>
+</ol>
+<h3>Echo Plugin JavaScript Example</h3>
+
+<pre class="prettyprint"><code>window.echo = function(str, callback) {
+    cordova.exec(callback, function(err) {
+        callback('Nothing to echo.');
+    }, "Echo", "echo", [str]);
+};
+</code></pre>
+
+<p>Let's dive into this. The plugin attaches itself to <code>window</code>,
+specifically to the <code>echo</code> function. Plugin users would then use it as
+follows:</p>
+
+<pre class="prettyprint"><code>window.echo("echome", function(echoValue) {
+    alert(echoValue == "echome"); // should alert true.
+});
+</code></pre>
+
+<p>First, let's take a look at the last three arguments to the <code>exec</code>
+function. We will be calling the <code>Echo</code> "service", requesting the <code>echo</code>
+"action", and passing an array of arguments containing the echo string,
+which is the first parameter into the <code>window.echo</code> function.</p>
+
+<p>The success callback passed into <code>exec</code> is simply a reference to the
+callback function that <code>window.echo</code> takes. We do a bit more for the
+error callback: if the native side fires off the error callback, we
+simply invoke the success callback and pass into it a "default" string.</p>
+
+<h2>
+<a name="Plugin%20Development%20Guide_native">Native</a>
+</h2>
+
+<p>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.</p>
+
+<ul>
+<li><a href="guide_plugin-development_android_index.md.html#Developing%20a%20Plugin%20on%20Android">Developing a Plugin on Android</a></li>
+<li><a href="guide_plugin-development_bada_index.md.html#Developing%20a%20Plugin%20on%20Bada">Developing a Plugin on Bada</a></li>
+<li><a href="guide_plugin-development_blackberry_index.md.html#Developing%20a%20Plugin%20on%20BlackBerry">Developing a Plugin on BlackBerry</a></li>
+<li><a href="guide_plugin-development_ios_index.md.html#Developing%20a%20Plugin%20on%20iOS">Developing a Plugin on iOS</a></li>
+<li><a href="guide_plugin-development_webos_index.md.html#Developing%20a%20Plugin%20on%20webOS">Developing a Plugin on webOS</a></li>
+<li><a href="guide_plugin-development_windows-phone_index.md.html#Developing%20a%20Plugin%20on%20Windows%20Phone">Developing a Plugin on Windows Phone</a></li>
+<li><a href="guide_plugin-development_tizen_index.md.html#Developing%20a%20Plugin%20on%20Tizen">Developing a Plugin on Tizen</a></li>
+</ul>
+</div>
+        </div>
+
+        <!-- Functionality and Syntax Highlighting -->
+        <script type="text/javascript" src="index.js"></script><script type="text/javascript" src="prettify/prettify.js"></script>
+</body>
+</html>

Added: cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_ios_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_ios_index.md.html?rev=1449255&view=auto
==============================================================================
--- cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_ios_index.md.html (added)
+++ cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_ios_index.md.html Fri Feb 22 23:42:47 2013
@@ -0,0 +1,321 @@
+<!DOCTYPE html>
+<!--
+    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.
+--><html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width">
+<meta name="generator" content="joDoc">
+<title>Apache Cordova API Documentation</title>
+<link rel="stylesheet" type="text/css" href="index.css">
+<link rel="stylesheet" type="text/css" href="mobile.css" media="only screen and (max-device-width: 1024px)">
+<link rel="stylesheet" type="text/css" href="prettify/prettify.css">
+</head>
+<body>
+        <div id="header">
+            <h1><a href="index.html">Apache <strong>Cordova</strong> Documentation</a></h1>
+            <small>
+                <select><optgroup label="English" value="en">
+<option value="edge">edge</option>
+<option selected value="2.5.0rc1">2.5.0rc1</option>
+<option value="2.4.0rc1">2.4.0rc1</option>
+<option value="2.4.0">2.4.0</option>
+<option value="2.3.0rc2">2.3.0rc2</option>
+<option value="2.3.0rc1">2.3.0rc1</option>
+<option value="2.3.0">2.3.0</option>
+<option value="2.2.0rc2">2.2.0rc2</option>
+<option value="2.2.0rc1">2.2.0rc1</option>
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0rc2">2.1.0rc2</option>
+<option value="2.1.0rc1">2.1.0rc1</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0rc1">2.0.0rc1</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0rc1">1.9.0rc1</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.8.0rc1">1.8.0rc1</option>
+<option value="1.8.0">1.8.0</option>
+<option value="1.7.0rc1">1.7.0rc1</option>
+<option value="1.7.0">1.7.0</option>
+<option value="1.6.1">1.6.1</option>
+<option value="1.6.0rc1">1.6.0rc1</option>
+<option value="1.6.0">1.6.0</option>
+<option value="1.5.0rc1">1.5.0rc1</option>
+<option value="1.5.0">1.5.0</option>
+</optgroup>
+<optgroup label="Japanese" value="jp">
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.7.0">1.7.0</option>
+</optgroup>
+<optgroup label="Korean" value="kr"><option value="2.0.0">2.0.0</option></optgroup></select></small>
+        </div>
+        <div id="subheader">
+            <h1>Developing a Plugin on iOS</h1>
+            <small><select><option value="Developing%2520a%2520Plugin%2520on%2520iOS">Developing a Plugin on iOS</option>
+<option value="Developing%20a%20Plugin%20on%20iOS_plugin_class_mapping">      - Plugin Class Mapping</option>
+<option value="Developing%20a%20Plugin%20on%20iOS_plugin_initialization_and_lifetime">      - Plugin Initialization and Lifetime</option>
+<option value="Developing%20a%20Plugin%20on%20iOS_writing_an_ios_cordova_plugin">      - Writing an iOS Cordova Plugin</option>
+<option value="Developing%20a%20Plugin%20on%20iOS_plugin_signatures">      - Plugin Signatures</option>
+<option value="Developing%20a%20Plugin%20on%20iOS_echo_plugin_ios_plugin">      - Echo Plugin iOS Plugin</option>
+<option value="Developing%20a%20Plugin%20on%20iOS_threading">      - Threading</option>
+<option value="Developing%20a%20Plugin%20on%20iOS_advanced_plugin_functionality">      - Advanced Plugin Functionality</option>
+<option value="Developing%20a%20Plugin%20on%20iOS_debugging_plugins">      - Debugging Plugins</option>
+<option value="Developing%20a%20Plugin%20on%20iOS_common_pitfalls">      - Common Pitfalls</option>
+<option value="Developing%20a%20Plugin%20on%20iOS_deprecated_plugin_signature_note">      - Deprecated Plugin Signature Note</option></select></small>
+        </div>
+
+        <div id="sidebar">
+            <div class="vertical_divider"></div>
+        <h1>API Reference</h1>
+<ul>
+<li><a href="cordova_accelerometer_accelerometer.md.html#Accelerometer">Accelerometer</a></li>
+<li><a href="cordova_camera_camera.md.html#Camera">Camera</a></li>
+<li><a href="cordova_media_capture_capture.md.html#Capture">Capture</a></li>
+<li><a href="cordova_compass_compass.md.html#Compass">Compass</a></li>
+<li><a href="cordova_connection_connection.md.html#Connection">Connection</a></li>
+<li><a href="cordova_contacts_contacts.md.html#Contacts">Contacts</a></li>
+<li><a href="cordova_device_device.md.html#Device">Device</a></li>
+<li><a href="cordova_events_events.md.html#Events">Events</a></li>
+<li><a href="cordova_file_file.md.html#File">File</a></li>
+<li><a href="cordova_geolocation_geolocation.md.html#Geolocation">Geolocation</a></li>
+<li><a href="cordova_globalization_globalization.md.html#Globalization">Globalization</a></li>
+<li><a href="cordova_inappbrowser_inappbrowser.md.html#InAppBrowser">InAppBrowser</a></li>
+<li><a href="cordova_media_media.md.html#Media">Media</a></li>
+<li><a href="cordova_notification_notification.md.html#Notification">Notification</a></li>
+<li><a href="cordova_splashscreen_splashscreen.md.html#Splashscreen">Splashscreen</a></li>
+<li><a href="cordova_storage_storage.md.html#Storage">Storage</a></li>
+</ul>
+<h1>Guides</h1>
+<ul>
+<li><a href="guide_getting-started_index.md.html#Getting%20Started%20Guides">Getting Started Guides</a></li>
+<li><a href="guide_command-line_index.md.html#Command-Line%20Usage">Command-Line Usage</a></li>
+<li><a href="guide_upgrading_index.md.html#Upgrading%20Guides">Upgrading Guides</a></li>
+<li><a href="guide_project-settings_index.md.html#Project%20Settings">Project Settings</a></li>
+<li><a href="guide_plugin-development_index.md.html#Plugin%20Development%20Guide">Plugin Development Guide</a></li>
+<li><a href="guide_whitelist_index.md.html#Domain%20Whitelist%20Guide">Domain Whitelist Guide</a></li>
+<li><a href="guide_cordova-webview_index.md.html#Embedding%20WebView">Embedding WebView</a></li>
+<li><a href="_index.html">Keyword Index</a></li>
+</ul>
+</div>
+
+        <div id="scrollable">
+            <div id="content">
+                <h1><a name="Developing%20a%20Plugin%20on%20iOS">Developing a Plugin on iOS</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 using the config.xml file, as a &lt;plugin&gt; tag under the &lt;plugins&gt; key.</p>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20iOS_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>
+
+<pre class="prettyprint"><code>exec(&lt;successFunction&gt;, &lt;failFunction&gt;, &lt;service&gt;, &lt;action&gt;, [&lt;args&gt;]);
+</code></pre>
+
+<p>This will marshal a request from the UIWebView 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>The plugin must be added under the <code>&lt;plugins&gt;</code> tag of the <code>config.xml</code> file in your Cordova-iOS application's project folder.</p>
+
+<pre class="prettyprint"><code>&lt;plugin name="service_name" value="PluginClassName" /&gt;
+</code></pre>
+
+<p>The key <code>service_name</code> should match what you use in the JavaScript <code>exec</code> 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.</p>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20iOS_plugin_initialization_and_lifetime">Plugin Initialization and Lifetime</a>
+</h2>
+
+<p>There is one instance of a plugin object that is created per-UIWebView, and the lifetime of the instance is tied to the UIWebView. Plugins are not instantiated until they are first referenced by a call from JS, unless the <code>onload</code> attribute set within config.xml. E.g.:</p>
+
+<pre class="prettyprint"><code>&lt;plugin name="Echo" value="Echo" onload="true" /&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>
+
+<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>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20iOS_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"];
+    }
+    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
+}
+</code></pre>
+
+<ol>
+<li><a class="external" href="https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVInvokedUrlCommand.h">CDVInvokedUrlCommand.h</a></li>
+<li><a class="external" href="https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPluginResult.h">CDVPluginResult.h</a></li>
+<li><a class="external" href="https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVCommandDelegate.h">CDVCommandDelegate.h</a></li>
+</ol>
+<h2>
+<a name="Developing%20a%20Plugin%20on%20iOS_plugin_signatures">Plugin Signatures</a>
+</h2>
+
+<p>The <strong>new signature</strong> supported beginning in <strong>Cordova 2.1.0</strong> is:</p>
+
+<pre class="prettyprint"><code>    - (void)myMethod:(CDVInvokedUrlCommand*)command;
+</code></pre>
+
+<p>The <strong>old (deprecated)</strong> signature is:</p>
+
+<pre class="prettyprint"><code>    - (void)myMethod:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
+</code></pre>
+
+<p>Basically, the options dictionary has been removed for the new signature, and the callbackId is not the 0th index item for the arguments array, but it is now in a separate property. </p>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20iOS_echo_plugin_ios_plugin">Echo Plugin iOS Plugin</a>
+</h2>
+
+<p>We would add the following to the <code>&lt;plugins&gt;</code> tag of the project's <code>config.xml</code> file:</p>
+
+<pre class="prettyprint"><code>&lt;plugin name="Echo" value="Echo" /&gt;
+</code></pre>
+
+<p>Then we would add the following files (<code>Echo.h</code> and <code>Echo.m</code>) to the Plugins folder inside our Cordova-iOS
+application folder:</p>
+
+<pre class="prettyprint"><code>/********* Echo.h Cordova Plugin Header *******/
+
+#import &lt;Cordova/CDV.h&gt;
+
+@interface Echo : CDVPlugin
+
+- (void)echo:(CDVInvokedUrlCommand*)command;
+
+@end
+
+/********* Echo.m Cordova Plugin Implementation *******/
+
+#import "Echo.h"
+#import &lt;Cordova/CDV.h&gt;
+
+@implementation Echo
+
+- (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];
+    }
+
+    [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId];
+}
+
+@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 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 <code>echo</code> parameter as a parameter.</p>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20iOS_threading">Threading</a>
+</h2>
+
+<p>Plugin methods are executed on the UI thread. If your plugin requires a non-trivial amount of processing or requires a blocking call, you should make use of a background thread. An 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="Developing%20a%20Plugin%20on%20iOS_advanced_plugin_functionality">Advanced Plugin Functionality</a>
+</h2>
+
+<p>See other methods that you can override in:</p>
+
+<ol>
+<li><a class="external" href="https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPlugin.h">CDVPlugin.h</a></li>
+<li><a class="external" href="https://github.com/apache/cordova-ios/blob/master/CordovaLib/Classes/CDVPlugin.m">CDVPlugin.m</a></li>
+</ol>
+<p>For example, you can hook into the <a href="cordova_events_events.md.html#pause">pause</a>, <a href="cordova_events_events.md.html#resume">resume</a>, app terminate and handleOpenURL events.</p>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20iOS_debugging_plugins">Debugging 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>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20iOS_common_pitfalls">Common Pitfalls</a>
+</h2>
+
+<ul>
+<li>Don't forget to add your plugin's mapping to config.xml - if you forgot, an error will be printed to the Xcode console log</li>
+<li>Don't forget to add any hosts you connect to in the <a href="guide_whitelist_index.md.html#Domain%20Whitelist%20Guide">whitelist</a> - if you forgot, an error will be printed to the Xcode console log</li>
+</ul>
+<h2>
+<a name="Developing%20a%20Plugin%20on%20iOS_deprecated_plugin_signature_note">Deprecated Plugin Signature Note</a>
+</h2>
+
+<p>The <strong>old (deprecated)</strong> signature is:</p>
+
+<pre class="prettyprint"><code>    - (void) myMethod:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
+</code></pre>
+
+<p>The options parameter for the Objective-C plugin method is 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.</p>
+
+            </div>
+        </div>
+
+        <!-- Functionality and Syntax Highlighting -->
+        <script type="text/javascript" src="index.js"></script><script type="text/javascript" src="prettify/prettify.js"></script>
+</body>
+</html>

Added: cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_tizen_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_tizen_index.md.html?rev=1449255&view=auto
==============================================================================
--- cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_tizen_index.md.html (added)
+++ cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_tizen_index.md.html Fri Feb 22 23:42:47 2013
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<!--
+    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.
+--><html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width">
+<meta name="generator" content="joDoc">
+<title>Apache Cordova API Documentation</title>
+<link rel="stylesheet" type="text/css" href="index.css">
+<link rel="stylesheet" type="text/css" href="mobile.css" media="only screen and (max-device-width: 1024px)">
+<link rel="stylesheet" type="text/css" href="prettify/prettify.css">
+</head>
+<body>
+        <div id="header">
+            <h1><a href="index.html">Apache <strong>Cordova</strong> Documentation</a></h1>
+            <small>
+                <select><optgroup label="English" value="en">
+<option value="edge">edge</option>
+<option selected value="2.5.0rc1">2.5.0rc1</option>
+<option value="2.4.0rc1">2.4.0rc1</option>
+<option value="2.4.0">2.4.0</option>
+<option value="2.3.0rc2">2.3.0rc2</option>
+<option value="2.3.0rc1">2.3.0rc1</option>
+<option value="2.3.0">2.3.0</option>
+<option value="2.2.0rc2">2.2.0rc2</option>
+<option value="2.2.0rc1">2.2.0rc1</option>
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0rc2">2.1.0rc2</option>
+<option value="2.1.0rc1">2.1.0rc1</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0rc1">2.0.0rc1</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0rc1">1.9.0rc1</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.8.0rc1">1.8.0rc1</option>
+<option value="1.8.0">1.8.0</option>
+<option value="1.7.0rc1">1.7.0rc1</option>
+<option value="1.7.0">1.7.0</option>
+<option value="1.6.1">1.6.1</option>
+<option value="1.6.0rc1">1.6.0rc1</option>
+<option value="1.6.0">1.6.0</option>
+<option value="1.5.0rc1">1.5.0rc1</option>
+<option value="1.5.0">1.5.0</option>
+</optgroup>
+<optgroup label="Japanese" value="jp">
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.7.0">1.7.0</option>
+</optgroup>
+<optgroup label="Korean" value="kr"><option value="2.0.0">2.0.0</option></optgroup></select></small>
+        </div>
+        <div id="subheader">
+            <h1>Developing a Plugin on Tizen</h1>
+            <small></small>
+        </div>
+
+        <div id="sidebar">
+            <div class="vertical_divider"></div>
+        <h1>API Reference</h1>
+<ul>
+<li><a href="cordova_accelerometer_accelerometer.md.html#Accelerometer">Accelerometer</a></li>
+<li><a href="cordova_camera_camera.md.html#Camera">Camera</a></li>
+<li><a href="cordova_media_capture_capture.md.html#Capture">Capture</a></li>
+<li><a href="cordova_compass_compass.md.html#Compass">Compass</a></li>
+<li><a href="cordova_connection_connection.md.html#Connection">Connection</a></li>
+<li><a href="cordova_contacts_contacts.md.html#Contacts">Contacts</a></li>
+<li><a href="cordova_device_device.md.html#Device">Device</a></li>
+<li><a href="cordova_events_events.md.html#Events">Events</a></li>
+<li><a href="cordova_file_file.md.html#File">File</a></li>
+<li><a href="cordova_geolocation_geolocation.md.html#Geolocation">Geolocation</a></li>
+<li><a href="cordova_globalization_globalization.md.html#Globalization">Globalization</a></li>
+<li><a href="cordova_inappbrowser_inappbrowser.md.html#InAppBrowser">InAppBrowser</a></li>
+<li><a href="cordova_media_media.md.html#Media">Media</a></li>
+<li><a href="cordova_notification_notification.md.html#Notification">Notification</a></li>
+<li><a href="cordova_splashscreen_splashscreen.md.html#Splashscreen">Splashscreen</a></li>
+<li><a href="cordova_storage_storage.md.html#Storage">Storage</a></li>
+</ul>
+<h1>Guides</h1>
+<ul>
+<li><a href="guide_getting-started_index.md.html#Getting%20Started%20Guides">Getting Started Guides</a></li>
+<li><a href="guide_command-line_index.md.html#Command-Line%20Usage">Command-Line Usage</a></li>
+<li><a href="guide_upgrading_index.md.html#Upgrading%20Guides">Upgrading Guides</a></li>
+<li><a href="guide_project-settings_index.md.html#Project%20Settings">Project Settings</a></li>
+<li><a href="guide_plugin-development_index.md.html#Plugin%20Development%20Guide">Plugin Development Guide</a></li>
+<li><a href="guide_whitelist_index.md.html#Domain%20Whitelist%20Guide">Domain Whitelist Guide</a></li>
+<li><a href="guide_cordova-webview_index.md.html#Embedding%20WebView">Embedding WebView</a></li>
+<li><a href="_index.html">Keyword Index</a></li>
+</ul>
+</div>
+
+        <div id="scrollable">
+            <div id="content">
+                <h1><a name="Developing%20a%20Plugin%20on%20Tizen">Developing a Plugin on Tizen</a></h1>
+
+<p>Plugins are currently not supported by the Tizen platform.</p>
+
+            </div>
+        </div>
+
+        <!-- Functionality and Syntax Highlighting -->
+        <script type="text/javascript" src="index.js"></script><script type="text/javascript" src="prettify/prettify.js"></script>
+</body>
+</html>

Added: cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_webos_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_webos_index.md.html?rev=1449255&view=auto
==============================================================================
--- cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_webos_index.md.html (added)
+++ cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_webos_index.md.html Fri Feb 22 23:42:47 2013
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<!--
+    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.
+--><html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width">
+<meta name="generator" content="joDoc">
+<title>Apache Cordova API Documentation</title>
+<link rel="stylesheet" type="text/css" href="index.css">
+<link rel="stylesheet" type="text/css" href="mobile.css" media="only screen and (max-device-width: 1024px)">
+<link rel="stylesheet" type="text/css" href="prettify/prettify.css">
+</head>
+<body>
+        <div id="header">
+            <h1><a href="index.html">Apache <strong>Cordova</strong> Documentation</a></h1>
+            <small>
+                <select><optgroup label="English" value="en">
+<option value="edge">edge</option>
+<option selected value="2.5.0rc1">2.5.0rc1</option>
+<option value="2.4.0rc1">2.4.0rc1</option>
+<option value="2.4.0">2.4.0</option>
+<option value="2.3.0rc2">2.3.0rc2</option>
+<option value="2.3.0rc1">2.3.0rc1</option>
+<option value="2.3.0">2.3.0</option>
+<option value="2.2.0rc2">2.2.0rc2</option>
+<option value="2.2.0rc1">2.2.0rc1</option>
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0rc2">2.1.0rc2</option>
+<option value="2.1.0rc1">2.1.0rc1</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0rc1">2.0.0rc1</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0rc1">1.9.0rc1</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.8.0rc1">1.8.0rc1</option>
+<option value="1.8.0">1.8.0</option>
+<option value="1.7.0rc1">1.7.0rc1</option>
+<option value="1.7.0">1.7.0</option>
+<option value="1.6.1">1.6.1</option>
+<option value="1.6.0rc1">1.6.0rc1</option>
+<option value="1.6.0">1.6.0</option>
+<option value="1.5.0rc1">1.5.0rc1</option>
+<option value="1.5.0">1.5.0</option>
+</optgroup>
+<optgroup label="Japanese" value="jp">
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.7.0">1.7.0</option>
+</optgroup>
+<optgroup label="Korean" value="kr"><option value="2.0.0">2.0.0</option></optgroup></select></small>
+        </div>
+        <div id="subheader">
+            <h1>Developing a Plugin on webOS</h1>
+            <small></small>
+        </div>
+
+        <div id="sidebar">
+            <div class="vertical_divider"></div>
+        <h1>API Reference</h1>
+<ul>
+<li><a href="cordova_accelerometer_accelerometer.md.html#Accelerometer">Accelerometer</a></li>
+<li><a href="cordova_camera_camera.md.html#Camera">Camera</a></li>
+<li><a href="cordova_media_capture_capture.md.html#Capture">Capture</a></li>
+<li><a href="cordova_compass_compass.md.html#Compass">Compass</a></li>
+<li><a href="cordova_connection_connection.md.html#Connection">Connection</a></li>
+<li><a href="cordova_contacts_contacts.md.html#Contacts">Contacts</a></li>
+<li><a href="cordova_device_device.md.html#Device">Device</a></li>
+<li><a href="cordova_events_events.md.html#Events">Events</a></li>
+<li><a href="cordova_file_file.md.html#File">File</a></li>
+<li><a href="cordova_geolocation_geolocation.md.html#Geolocation">Geolocation</a></li>
+<li><a href="cordova_globalization_globalization.md.html#Globalization">Globalization</a></li>
+<li><a href="cordova_inappbrowser_inappbrowser.md.html#InAppBrowser">InAppBrowser</a></li>
+<li><a href="cordova_media_media.md.html#Media">Media</a></li>
+<li><a href="cordova_notification_notification.md.html#Notification">Notification</a></li>
+<li><a href="cordova_splashscreen_splashscreen.md.html#Splashscreen">Splashscreen</a></li>
+<li><a href="cordova_storage_storage.md.html#Storage">Storage</a></li>
+</ul>
+<h1>Guides</h1>
+<ul>
+<li><a href="guide_getting-started_index.md.html#Getting%20Started%20Guides">Getting Started Guides</a></li>
+<li><a href="guide_command-line_index.md.html#Command-Line%20Usage">Command-Line Usage</a></li>
+<li><a href="guide_upgrading_index.md.html#Upgrading%20Guides">Upgrading Guides</a></li>
+<li><a href="guide_project-settings_index.md.html#Project%20Settings">Project Settings</a></li>
+<li><a href="guide_plugin-development_index.md.html#Plugin%20Development%20Guide">Plugin Development Guide</a></li>
+<li><a href="guide_whitelist_index.md.html#Domain%20Whitelist%20Guide">Domain Whitelist Guide</a></li>
+<li><a href="guide_cordova-webview_index.md.html#Embedding%20WebView">Embedding WebView</a></li>
+<li><a href="_index.html">Keyword Index</a></li>
+</ul>
+</div>
+
+        <div id="scrollable">
+            <div id="content">
+                <h1><a name="Developing%20a%20Plugin%20on%20webOS">Developing a Plugin on webOS</a></h1>
+
+<p>Plugins are currently not supported by the webOS platform.</p>
+
+            </div>
+        </div>
+
+        <!-- Functionality and Syntax Highlighting -->
+        <script type="text/javascript" src="index.js"></script><script type="text/javascript" src="prettify/prettify.js"></script>
+</body>
+</html>

Added: cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_windows-phone_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_windows-phone_index.md.html?rev=1449255&view=auto
==============================================================================
--- cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_windows-phone_index.md.html (added)
+++ cordova/site/public/docs/en/2.5.0rc1/guide_plugin-development_windows-phone_index.md.html Fri Feb 22 23:42:47 2013
@@ -0,0 +1,340 @@
+<!DOCTYPE html>
+<!--
+    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.
+--><html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width">
+<meta name="generator" content="joDoc">
+<title>Apache Cordova API Documentation</title>
+<link rel="stylesheet" type="text/css" href="index.css">
+<link rel="stylesheet" type="text/css" href="mobile.css" media="only screen and (max-device-width: 1024px)">
+<link rel="stylesheet" type="text/css" href="prettify/prettify.css">
+</head>
+<body>
+        <div id="header">
+            <h1><a href="index.html">Apache <strong>Cordova</strong> Documentation</a></h1>
+            <small>
+                <select><optgroup label="English" value="en">
+<option value="edge">edge</option>
+<option selected value="2.5.0rc1">2.5.0rc1</option>
+<option value="2.4.0rc1">2.4.0rc1</option>
+<option value="2.4.0">2.4.0</option>
+<option value="2.3.0rc2">2.3.0rc2</option>
+<option value="2.3.0rc1">2.3.0rc1</option>
+<option value="2.3.0">2.3.0</option>
+<option value="2.2.0rc2">2.2.0rc2</option>
+<option value="2.2.0rc1">2.2.0rc1</option>
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0rc2">2.1.0rc2</option>
+<option value="2.1.0rc1">2.1.0rc1</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0rc1">2.0.0rc1</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0rc1">1.9.0rc1</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.8.0rc1">1.8.0rc1</option>
+<option value="1.8.0">1.8.0</option>
+<option value="1.7.0rc1">1.7.0rc1</option>
+<option value="1.7.0">1.7.0</option>
+<option value="1.6.1">1.6.1</option>
+<option value="1.6.0rc1">1.6.0rc1</option>
+<option value="1.6.0">1.6.0</option>
+<option value="1.5.0rc1">1.5.0rc1</option>
+<option value="1.5.0">1.5.0</option>
+</optgroup>
+<optgroup label="Japanese" value="jp">
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.7.0">1.7.0</option>
+</optgroup>
+<optgroup label="Korean" value="kr"><option value="2.0.0">2.0.0</option></optgroup></select></small>
+        </div>
+        <div id="subheader">
+            <h1>Developing a Plugin on Windows Phone</h1>
+            <small><select><option value="Developing%2520a%2520Plugin%2520on%2520Windows%2520Phone">Developing a Plugin on Windows Phone</option>
+<option value="Developing%20a%20Plugin%20on%20Windows%20Phone_namespaces">      - Namespaces</option>
+<option value="Developing%20a%20Plugin%20on%20Windows%20Phone_interpreting_your_arguments_in_c">      - Interpreting your arguments in C#</option>
+<option value="Developing%20a%20Plugin%20on%20Windows%20Phone_passing_results_from_c_to_js">      - Passing results from C# to JS</option>
+<option value="Developing%20a%20Plugin%20on%20Windows%20Phone_handling_serialization_errors_in_your_plugin_s_c_method">      - Handling serialization errors in your plugin's C# method</option>
+<option value="Developing%20a%20Plugin%20on%20Windows%20Phone_advanced_plugin_functionality">      - Advanced Plugin Functionality</option>
+<option value="Developing%20a%20Plugin%20on%20Windows%20Phone_common_pitfalls">      - Common Pitfalls</option></select></small>
+        </div>
+
+        <div id="sidebar">
+            <div class="vertical_divider"></div>
+        <h1>API Reference</h1>
+<ul>
+<li><a href="cordova_accelerometer_accelerometer.md.html#Accelerometer">Accelerometer</a></li>
+<li><a href="cordova_camera_camera.md.html#Camera">Camera</a></li>
+<li><a href="cordova_media_capture_capture.md.html#Capture">Capture</a></li>
+<li><a href="cordova_compass_compass.md.html#Compass">Compass</a></li>
+<li><a href="cordova_connection_connection.md.html#Connection">Connection</a></li>
+<li><a href="cordova_contacts_contacts.md.html#Contacts">Contacts</a></li>
+<li><a href="cordova_device_device.md.html#Device">Device</a></li>
+<li><a href="cordova_events_events.md.html#Events">Events</a></li>
+<li><a href="cordova_file_file.md.html#File">File</a></li>
+<li><a href="cordova_geolocation_geolocation.md.html#Geolocation">Geolocation</a></li>
+<li><a href="cordova_globalization_globalization.md.html#Globalization">Globalization</a></li>
+<li><a href="cordova_inappbrowser_inappbrowser.md.html#InAppBrowser">InAppBrowser</a></li>
+<li><a href="cordova_media_media.md.html#Media">Media</a></li>
+<li><a href="cordova_notification_notification.md.html#Notification">Notification</a></li>
+<li><a href="cordova_splashscreen_splashscreen.md.html#Splashscreen">Splashscreen</a></li>
+<li><a href="cordova_storage_storage.md.html#Storage">Storage</a></li>
+</ul>
+<h1>Guides</h1>
+<ul>
+<li><a href="guide_getting-started_index.md.html#Getting%20Started%20Guides">Getting Started Guides</a></li>
+<li><a href="guide_command-line_index.md.html#Command-Line%20Usage">Command-Line Usage</a></li>
+<li><a href="guide_upgrading_index.md.html#Upgrading%20Guides">Upgrading Guides</a></li>
+<li><a href="guide_project-settings_index.md.html#Project%20Settings">Project Settings</a></li>
+<li><a href="guide_plugin-development_index.md.html#Plugin%20Development%20Guide">Plugin Development Guide</a></li>
+<li><a href="guide_whitelist_index.md.html#Domain%20Whitelist%20Guide">Domain Whitelist Guide</a></li>
+<li><a href="guide_cordova-webview_index.md.html#Embedding%20WebView">Embedding WebView</a></li>
+<li><a href="_index.html">Keyword Index</a></li>
+</ul>
+</div>
+
+        <div id="scrollable">
+            <div id="content">
+                <h1><a name="Developing%20a%20Plugin%20on%20Windows%20Phone">Developing a Plugin on Windows Phone</a></h1>
+
+<p>Writing a plugin for Cordova on Windows Phone requires a basic understanding of
+the architecture of Cordova. Cordova-WP7 consists of a WebBrowser which hosts the
+application javascript code and manages native API calls. There is a BaseCommand
+(<code>WP7CordovaClassLib.Cordova.Commands.BaseCommand</code>) class in C# which you can extend,
+and it comes with the majority of the 'plumbing' built for you already.</p>
+
+<ol>
+<li>Select your project, and right click choose 'Add -&gt; New Item ...'
+<ul>
+<li>Preferably add it to the 'Plugins' folder, but it is up to you</li>
+</ul>
+</li>
+<li>Select 'Class' and name it <code>Echo.cs</code>
+<ul>
+<li>The name of this class must EXACTLY match what you call into <code>cordova.exec(win, fail, "Echo", ...)</code>
+</li>
+</ul>
+</li>
+<li>
+<p>Include the base classes implementation</p>
+
+<pre class="prettyprint"><code>using WPCordovaClassLib.Cordova;
+using WPCordovaClassLib.Cordova.Commands;
+using WPCordovaClassLib.Cordova.JSON;
+</code></pre>
+</li>
+<li>
+<p>Extend your class from BaseCommand</p>
+
+<pre class="prettyprint"><code>public class Echo : BaseCommand
+{
+    // ...
+}
+</code></pre>
+</li>
+<li>
+<p>Add a method that is callable from JS</p>
+
+<pre class="prettyprint"><code>public class Echo : BaseCommand
+{
+    public void echo(string options)
+    {
+        // all JS callable plugin methods MUST have this signature!
+        // public, returning void, 1 argument that is a string
+    }
+}
+</code></pre>
+</li>
+</ol>
+<h2>
+<a name="Developing%20a%20Plugin%20on%20Windows%20Phone_namespaces">Namespaces</a>
+</h2>
+
+<p>The default namespace for unqualified commands is:</p>
+
+<pre class="prettyprint"><code>namespace Cordova.Extension.Commands
+{
+    // ...
+}
+</code></pre>
+
+<p>If you would like to use your own namespace, you will need to make a fully qualified
+call to <code>cordova.exec</code>. For example, if you wanted to define your C# class like this:</p>
+
+<pre class="prettyprint"><code>namespace com.mydomain.cordovaExtensions
+{
+    public class Echo : BaseCommand
+    {
+        // ...
+    }
+}
+</code></pre>
+
+<p>Then, in JS you would need to call exec like this:</p>
+
+<pre class="prettyprint"><code>cordova.exec(win, fail, "com.mydomain.cordovaExtensions.Echo", ...);
+</code></pre>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20Windows%20Phone_interpreting_your_arguments_in_c">Interpreting your arguments in C#</a>
+</h2>
+
+<p>The data received by your plugin method is a string value, but in actuality
+looking at our JavaScript code, we see our intention was to pass an array of strings.
+Looking back at our JS call to <code>cordova.exec</code>, we see we passed <code>[str]</code>:</p>
+
+<pre class="prettyprint"><code>cordova.exec(win, fail, "Echo", "echo", ["input string"]);
+</code></pre>
+
+<p>If we inspect the options string passed in to our <code>Echo.echo</code> method, we will
+see that the value is actually:</p>
+
+<pre class="prettyprint"><code>"[\"input string\"]"
+</code></pre>
+
+<p>All javascript exec arguments are JSON encoded before being passed into C#.</p>
+
+<p>If we want to treat this as the string we were expecting, we need to decode it.
+We can use simple JSON deserialization.</p>
+
+<pre class="prettyprint"><code>string optVal = JsonHelper.Deserialize&lt;string[]&gt;(options)[0];
+// optVal now has the value of "input string"
+</code></pre>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20Windows%20Phone_passing_results_from_c_to_js">Passing results from C# to JS</a>
+</h2>
+
+<p>The base class BaseCommand provides methods for passing data to your JS callback handlers.
+To simply signal that the command has succeeded, when no additional result info is needed,
+you can can simply call:</p>
+
+<pre class="prettyprint"><code>DispatchCommandResult(); // calls back with an empty plugin result, considered a success callback
+</code></pre>
+
+<p>To pass data back, you will need to call a different version of <code>DispatchCommandResult</code>:</p>
+
+<pre class="prettyprint"><code>DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "Everything went as planned, this is a result that is passed to the success handler."));
+</code></pre>
+
+<p>To pass structured object data back to JS, it should be encoded as a JSON string:</p>
+
+<pre class="prettyprint"><code>DispatchCommandResult(new PluginResult(PluginResult.Status.OK, "{result:\"super awesome!\"}"));
+</code></pre>
+
+<p>If you need to signal that an error has occurred, you can call <code>DispatchCommandResult</code> with a <code>PluginResult</code> object:</p>
+
+<pre class="prettyprint"><code>DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Echo signaled an error"));
+</code></pre>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20Windows%20Phone_handling_serialization_errors_in_your_plugin_s_c_method">Handling serialization errors in your plugin's C# method</a>
+</h2>
+
+<p>When interpreting your arguments, it is a good idea to use a try/catch block
+in case we have bad input. This is a pattern used throughout the Cordova C# code:</p>
+
+<pre class="prettyprint"><code>string optVal = null;
+
+try 
+{
+    optVal = JsonHelper.Deserialize&lt;string[]&gt;(options)[0];
+}
+catch(Exception)
+{
+    // simply catch the exception, we will handle null values and exceptions together
+}
+
+if (optVal == null)
+{
+    DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
+}
+else
+{
+    // ... continue on to do our work
+}
+</code></pre>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20Windows%20Phone_advanced_plugin_functionality">Advanced Plugin Functionality</a>
+</h2>
+
+<p>See other methods that you can override in:</p>
+
+<ol>
+<li><a class="external" href="https://github.com/apache/cordova-wp7/blob/master/templates/standalone/cordovalib/Commands/BaseCommand.cs">BaseCommand.cs</a></li>
+</ol>
+<p>For example, you can hook into the '<a href="cordova_events_events.md.html#pause">pause</a>' and '<a href="cordova_events_events.md.html#resume">resume</a>' application events.</p>
+
+<h3>Debugging Plugins</h3>
+
+<p>To debug the C# side, you can use Visual Studio's debugger, just set a break point
+at any of the methods exposed by your class.</p>
+
+<p>Javascript is a little more difficult to debug on Windows Phone, you will need to
+use <code>console.log</code> to output the state of your plugin, or inform yourself of errors.</p>
+
+<h2>
+<a name="Developing%20a%20Plugin%20on%20Windows%20Phone_common_pitfalls">Common Pitfalls</a>
+</h2>
+
+<ul>
+<li>
+<p>Be careful when deciding on the arguments you pass to native in your JavaScript
+implementation. Most device platforms expect the args passed to cordova.exec
+to be an array, but if you have different types of objects in this array, it
+becomes difficult or impossible to deserialize.</p>
+
+<pre class="prettyprint"><code>cordova.exec(win, fail, "ServiceName", "MethodName", ["this is a string", 54, {literal:'trouble'}]);
+</code></pre>
+
+<ul>
+<li>
+<p>This will mean that your C# code will receive a difficult to decode string value, such as:</p>
+
+<pre class="prettyprint"><code>"[\"this is a string\", 54, { literal:'trouble' }]"
+</code></pre>
+</li>
+<li>
+<p>Consider converting ALL parameters to strings before calling exec:</p>
+
+<pre class="prettyprint"><code>cordova.exec(win, fail, "ServiceName", "MethodName", ["this is a string", "54", "{literal:'trouble'}"]) ;
+
+
+string[] optValues = JsonHelper.Deserialize&lt;string[]&gt;(options);
+</code></pre>
+</li>
+</ul>
+</li>
+<li><p>It is usually a good idea to do parameter checking in your JavaScript code,
+before you call exec.  This will let you re-use more JS code between different
+native implementations of your plugin.</p></li>
+</ul>
+</div>
+        </div>
+
+        <!-- Functionality and Syntax Highlighting -->
+        <script type="text/javascript" src="index.js"></script><script type="text/javascript" src="prettify/prettify.js"></script>
+</body>
+</html>

Added: cordova/site/public/docs/en/2.5.0rc1/guide_project-settings_android_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/2.5.0rc1/guide_project-settings_android_index.md.html?rev=1449255&view=auto
==============================================================================
--- cordova/site/public/docs/en/2.5.0rc1/guide_project-settings_android_index.md.html (added)
+++ cordova/site/public/docs/en/2.5.0rc1/guide_project-settings_android_index.md.html Fri Feb 22 23:42:47 2013
@@ -0,0 +1,176 @@
+<!DOCTYPE html>
+<!--
+    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.
+--><html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width">
+<meta name="generator" content="joDoc">
+<title>Apache Cordova API Documentation</title>
+<link rel="stylesheet" type="text/css" href="index.css">
+<link rel="stylesheet" type="text/css" href="mobile.css" media="only screen and (max-device-width: 1024px)">
+<link rel="stylesheet" type="text/css" href="prettify/prettify.css">
+</head>
+<body>
+        <div id="header">
+            <h1><a href="index.html">Apache <strong>Cordova</strong> Documentation</a></h1>
+            <small>
+                <select><optgroup label="English" value="en">
+<option value="edge">edge</option>
+<option selected value="2.5.0rc1">2.5.0rc1</option>
+<option value="2.4.0rc1">2.4.0rc1</option>
+<option value="2.4.0">2.4.0</option>
+<option value="2.3.0rc2">2.3.0rc2</option>
+<option value="2.3.0rc1">2.3.0rc1</option>
+<option value="2.3.0">2.3.0</option>
+<option value="2.2.0rc2">2.2.0rc2</option>
+<option value="2.2.0rc1">2.2.0rc1</option>
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0rc2">2.1.0rc2</option>
+<option value="2.1.0rc1">2.1.0rc1</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0rc1">2.0.0rc1</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0rc1">1.9.0rc1</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.8.0rc1">1.8.0rc1</option>
+<option value="1.8.0">1.8.0</option>
+<option value="1.7.0rc1">1.7.0rc1</option>
+<option value="1.7.0">1.7.0</option>
+<option value="1.6.1">1.6.1</option>
+<option value="1.6.0rc1">1.6.0rc1</option>
+<option value="1.6.0">1.6.0</option>
+<option value="1.5.0rc1">1.5.0rc1</option>
+<option value="1.5.0">1.5.0</option>
+</optgroup>
+<optgroup label="Japanese" value="jp">
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.7.0">1.7.0</option>
+</optgroup>
+<optgroup label="Korean" value="kr"><option value="2.0.0">2.0.0</option></optgroup></select></small>
+        </div>
+        <div id="subheader">
+            <h1>Project Settings for Android</h1>
+            <small><select><option value="Project%2520Settings%2520for%2520Android">Project Settings for Android</option>
+<option value="Project%20Settings%20for%20Android_preference">      - &lt;preference&gt;</option>
+<option value="Project%20Settings%20for%20Android_plugin">      - &lt;plugin&gt;</option></select></small>
+        </div>
+
+        <div id="sidebar">
+            <div class="vertical_divider"></div>
+        <h1>API Reference</h1>
+<ul>
+<li><a href="cordova_accelerometer_accelerometer.md.html#Accelerometer">Accelerometer</a></li>
+<li><a href="cordova_camera_camera.md.html#Camera">Camera</a></li>
+<li><a href="cordova_media_capture_capture.md.html#Capture">Capture</a></li>
+<li><a href="cordova_compass_compass.md.html#Compass">Compass</a></li>
+<li><a href="cordova_connection_connection.md.html#Connection">Connection</a></li>
+<li><a href="cordova_contacts_contacts.md.html#Contacts">Contacts</a></li>
+<li><a href="cordova_device_device.md.html#Device">Device</a></li>
+<li><a href="cordova_events_events.md.html#Events">Events</a></li>
+<li><a href="cordova_file_file.md.html#File">File</a></li>
+<li><a href="cordova_geolocation_geolocation.md.html#Geolocation">Geolocation</a></li>
+<li><a href="cordova_globalization_globalization.md.html#Globalization">Globalization</a></li>
+<li><a href="cordova_inappbrowser_inappbrowser.md.html#InAppBrowser">InAppBrowser</a></li>
+<li><a href="cordova_media_media.md.html#Media">Media</a></li>
+<li><a href="cordova_notification_notification.md.html#Notification">Notification</a></li>
+<li><a href="cordova_splashscreen_splashscreen.md.html#Splashscreen">Splashscreen</a></li>
+<li><a href="cordova_storage_storage.md.html#Storage">Storage</a></li>
+</ul>
+<h1>Guides</h1>
+<ul>
+<li><a href="guide_getting-started_index.md.html#Getting%20Started%20Guides">Getting Started Guides</a></li>
+<li><a href="guide_command-line_index.md.html#Command-Line%20Usage">Command-Line Usage</a></li>
+<li><a href="guide_upgrading_index.md.html#Upgrading%20Guides">Upgrading Guides</a></li>
+<li><a href="guide_project-settings_index.md.html#Project%20Settings">Project Settings</a></li>
+<li><a href="guide_plugin-development_index.md.html#Plugin%20Development%20Guide">Plugin Development Guide</a></li>
+<li><a href="guide_whitelist_index.md.html#Domain%20Whitelist%20Guide">Domain Whitelist Guide</a></li>
+<li><a href="guide_cordova-webview_index.md.html#Embedding%20WebView">Embedding WebView</a></li>
+<li><a href="_index.html">Keyword Index</a></li>
+</ul>
+</div>
+
+        <div id="scrollable">
+            <div id="content">
+                <!--
+#
+# 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.
+#
+-->
+
+<h1><a name="Project%20Settings%20for%20Android">Project Settings for Android</a></h1>
+
+<p>The <code>config.xml</code> settings file controls various settings of Cordova. This is application wide, and not set per CordovaWebView Instance.</p>
+
+<h2>
+<a name="Project%20Settings%20for%20Android_preference">&lt;preference&gt;</a>
+</h2>
+
+<p>Various <strong>other</strong> preferences (as <strong>&lt;preference&gt;</strong> tags) default on not breaking existing apps. The available preferences are:</p>
+
+<ol>
+<li>
+<strong>useBrowserHistory (boolean, defaults to true)</strong> - set to false if you want to use the history shim that was used to work around the hashtag error present in Android 3.x prior to the history fix.  (Note: This setting will be deprecated in April 2013)</li>
+<li>
+<strong>loadingDialog</strong> - Display a native loading dialog when loading the app.  Format for the value is "Title, Message"</li>
+<li>
+<strong>loadingPageDialog</strong> - Display a native loading dialog when loading sub-pages. Format for the value is "Title, Message"</li>
+<li>
+<strong>errorUrl</strong> - Set the error page for your application. Should be located in your Android project in file://android_asset/www/</li>
+<li>
+<strong>backgroundColor</strong> - Set the background color for your application.  Supports a four-byte hex value, with the first byte representing alpha value, and the following three bytes with standard RGB values. (i.e. 0x00000000 = Black)</li>
+<li>
+<strong>loadUrlTimeoutValue</strong> - How much time Cordova should wait before throwing a timeout error on the application.</li>
+<li>
+<strong>keepRunning (boolean, defaults to true)</strong> - Determines whether Cordova will keep running in the background or not</li>
+<li>
+<strong>splashscreen</strong> - The name of the file minus its extension in the res/drawable directory.  If you have multiple assets, they all must share this common name in their respective directories.</li>
+</ol>
+<h2>
+<a name="Project%20Settings%20for%20Android_plugin">&lt;plugin&gt;</a>
+</h2>
+
+<p>Android supports using &lt;feature&gt; as analogues to &lt;plugin&gt; elements.</p>
+
+            </div>
+        </div>
+
+        <!-- Functionality and Syntax Highlighting -->
+        <script type="text/javascript" src="index.js"></script><script type="text/javascript" src="prettify/prettify.js"></script>
+</body>
+</html>

Added: cordova/site/public/docs/en/2.5.0rc1/guide_project-settings_bada_index.md.html
URL: http://svn.apache.org/viewvc/cordova/site/public/docs/en/2.5.0rc1/guide_project-settings_bada_index.md.html?rev=1449255&view=auto
==============================================================================
--- cordova/site/public/docs/en/2.5.0rc1/guide_project-settings_bada_index.md.html (added)
+++ cordova/site/public/docs/en/2.5.0rc1/guide_project-settings_bada_index.md.html Fri Feb 22 23:42:47 2013
@@ -0,0 +1,142 @@
+<!DOCTYPE html>
+<!--
+    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.
+--><html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width">
+<meta name="generator" content="joDoc">
+<title>Apache Cordova API Documentation</title>
+<link rel="stylesheet" type="text/css" href="index.css">
+<link rel="stylesheet" type="text/css" href="mobile.css" media="only screen and (max-device-width: 1024px)">
+<link rel="stylesheet" type="text/css" href="prettify/prettify.css">
+</head>
+<body>
+        <div id="header">
+            <h1><a href="index.html">Apache <strong>Cordova</strong> Documentation</a></h1>
+            <small>
+                <select><optgroup label="English" value="en">
+<option value="edge">edge</option>
+<option selected value="2.5.0rc1">2.5.0rc1</option>
+<option value="2.4.0rc1">2.4.0rc1</option>
+<option value="2.4.0">2.4.0</option>
+<option value="2.3.0rc2">2.3.0rc2</option>
+<option value="2.3.0rc1">2.3.0rc1</option>
+<option value="2.3.0">2.3.0</option>
+<option value="2.2.0rc2">2.2.0rc2</option>
+<option value="2.2.0rc1">2.2.0rc1</option>
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0rc2">2.1.0rc2</option>
+<option value="2.1.0rc1">2.1.0rc1</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0rc1">2.0.0rc1</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0rc1">1.9.0rc1</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.8.0rc1">1.8.0rc1</option>
+<option value="1.8.0">1.8.0</option>
+<option value="1.7.0rc1">1.7.0rc1</option>
+<option value="1.7.0">1.7.0</option>
+<option value="1.6.1">1.6.1</option>
+<option value="1.6.0rc1">1.6.0rc1</option>
+<option value="1.6.0">1.6.0</option>
+<option value="1.5.0rc1">1.5.0rc1</option>
+<option value="1.5.0">1.5.0</option>
+</optgroup>
+<optgroup label="Japanese" value="jp">
+<option value="2.2.0">2.2.0</option>
+<option value="2.1.0">2.1.0</option>
+<option value="2.0.0">2.0.0</option>
+<option value="1.9.0">1.9.0</option>
+<option value="1.8.1">1.8.1</option>
+<option value="1.7.0">1.7.0</option>
+</optgroup>
+<optgroup label="Korean" value="kr"><option value="2.0.0">2.0.0</option></optgroup></select></small>
+        </div>
+        <div id="subheader">
+            <h1>Project Settings for Bada </h1>
+            <small></small>
+        </div>
+
+        <div id="sidebar">
+            <div class="vertical_divider"></div>
+        <h1>API Reference</h1>
+<ul>
+<li><a href="cordova_accelerometer_accelerometer.md.html#Accelerometer">Accelerometer</a></li>
+<li><a href="cordova_camera_camera.md.html#Camera">Camera</a></li>
+<li><a href="cordova_media_capture_capture.md.html#Capture">Capture</a></li>
+<li><a href="cordova_compass_compass.md.html#Compass">Compass</a></li>
+<li><a href="cordova_connection_connection.md.html#Connection">Connection</a></li>
+<li><a href="cordova_contacts_contacts.md.html#Contacts">Contacts</a></li>
+<li><a href="cordova_device_device.md.html#Device">Device</a></li>
+<li><a href="cordova_events_events.md.html#Events">Events</a></li>
+<li><a href="cordova_file_file.md.html#File">File</a></li>
+<li><a href="cordova_geolocation_geolocation.md.html#Geolocation">Geolocation</a></li>
+<li><a href="cordova_globalization_globalization.md.html#Globalization">Globalization</a></li>
+<li><a href="cordova_inappbrowser_inappbrowser.md.html#InAppBrowser">InAppBrowser</a></li>
+<li><a href="cordova_media_media.md.html#Media">Media</a></li>
+<li><a href="cordova_notification_notification.md.html#Notification">Notification</a></li>
+<li><a href="cordova_splashscreen_splashscreen.md.html#Splashscreen">Splashscreen</a></li>
+<li><a href="cordova_storage_storage.md.html#Storage">Storage</a></li>
+</ul>
+<h1>Guides</h1>
+<ul>
+<li><a href="guide_getting-started_index.md.html#Getting%20Started%20Guides">Getting Started Guides</a></li>
+<li><a href="guide_command-line_index.md.html#Command-Line%20Usage">Command-Line Usage</a></li>
+<li><a href="guide_upgrading_index.md.html#Upgrading%20Guides">Upgrading Guides</a></li>
+<li><a href="guide_project-settings_index.md.html#Project%20Settings">Project Settings</a></li>
+<li><a href="guide_plugin-development_index.md.html#Plugin%20Development%20Guide">Plugin Development Guide</a></li>
+<li><a href="guide_whitelist_index.md.html#Domain%20Whitelist%20Guide">Domain Whitelist Guide</a></li>
+<li><a href="guide_cordova-webview_index.md.html#Embedding%20WebView">Embedding WebView</a></li>
+<li><a href="_index.html">Keyword Index</a></li>
+</ul>
+</div>
+
+        <div id="scrollable">
+            <div id="content">
+                <!--
+#
+# 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.
+#
+-->
+
+<h1><a name="Project%20Settings%20for%20Bada%20">Project Settings for Bada </a></h1>
+
+            </div>
+        </div>
+
+        <!-- Functionality and Syntax Highlighting -->
+        <script type="text/javascript" src="index.js"></script><script type="text/javascript" src="prettify/prettify.js"></script>
+</body>
+</html>



Mime
View raw message