You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by st...@apache.org on 2013/12/07 01:17:22 UTC
[06/12] Version 3.3.0
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/media/media.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/media/media.md b/docs/en/3.3.0/cordova/media/media.md
new file mode 100644
index 0000000..01f2239
--- /dev/null
+++ b/docs/en/3.3.0/cordova/media/media.md
@@ -0,0 +1,161 @@
+---
+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.
+---
+
+# Media
+
+> The `Media` object provides the ability to record and play back audio files on a device.
+
+ var media = new Media(src, mediaSuccess, [mediaError], [mediaStatus]);
+
+__NOTE__: The current implementation does not adhere to a W3C
+specification for media capture, and is provided for convenience only.
+A future implementation will adhere to the latest W3C specification
+and may deprecate the current APIs.
+
+## Parameters
+
+- __src__: A URI containing the audio content. _(DOMString)_
+
+- __mediaSuccess__: (Optional) The callback that executes after a `Media` object has completed the current play, record, or stop action. _(Function)_
+
+- __mediaError__: (Optional) The callback that executes if an error occurs. _(Function)_
+
+- __mediaStatus__: (Optional) The callback that executes to indicate status changes. _(Function)_
+
+## Constants
+
+The following constants are reported as the only parameter to the
+`mediaStatus` callback:
+
+- `Media.MEDIA_NONE` = 0;
+- `Media.MEDIA_STARTING` = 1;
+- `Media.MEDIA_RUNNING` = 2;
+- `Media.MEDIA_PAUSED` = 3;
+- `Media.MEDIA_STOPPED` = 4;
+
+## Methods
+
+- `media.getCurrentPosition`: Returns the current position within an audio file.
+
+- `media.getDuration`: Returns the duration of an audio file.
+
+- `media.play`: Start or resume playing an audio file.
+
+- `media.pause`: Pause playback of an audio file.
+
+- `media.release`: Releases the underlying operating system's audio resources.
+
+- `media.seekTo`: Moves the position within the audio file.
+
+- `media.setVolume`: Set the volume for audio playback.
+
+- `media.startRecord`: Start recording an audio file.
+
+- `media.stopRecord`: Stop recording an audio file.
+
+- `media.stop`: Stop playing an audio file.
+
+## Additional ReadOnly Parameters
+
+- __position__: The position within the audio playback, in seconds.
+ - Not automatically updated during play; call `getCurrentPosition` to update.
+
+- __duration__: The duration of the media, in seconds.
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- iOS
+- Windows Phone 7.5
+- Tizen
+- Windows 8
+
+## Accessing the Feature
+
+As of version 3.0, Cordova implements device-level APIs as _plugins_.
+Use the CLI's `plugin` command, described in The Command-Line
+Interface, to add or remove this feature for a project:
+
+ $ cordova plugin add org.apache.cordova.media
+ $ cordova plugin ls
+ [ 'org.apache.cordova.media' ]
+ $ cordova plugin rm org.apache.cordova.media
+
+These commands apply to all targeted platforms, but modify the
+platform-specific configuration settings described below:
+
+* Amazon Fire OS
+
+ (in app/res/xml/config.xml)
+ <feature name="Media">
+ <param name="android-package" value="org.apache.cordova.media.AudioHandler" />
+ </feature>
+
+ (in app/AndroidManifest.xml)
+ <uses-permission android:name="android.permission.RECORD_AUDIO" />
+ <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+
+* Android
+
+ (in app/res/xml/config.xml)
+ <feature name="Media">
+ <param name="android-package" value="org.apache.cordova.media.AudioHandler" />
+ </feature>
+
+ (in app/AndroidManifest.xml)
+ <uses-permission android:name="android.permission.RECORD_AUDIO" />
+ <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+
+* BlackBerry 10
+
+ (in www/config.xml)
+ <feature name="Media" value="Media" />
+
+* iOS (in the named application directory's `config.xml`)
+
+ <feature name="Media">
+ <param name="ios-package" value="CDVSound" />
+ </feature>
+
+* Windows Phone (in `Properties/WPAppManifest.xml`)
+
+ <Capabilities>
+ <Capability Name="ID_CAP_MEDIALIB" />
+ <Capability Name="ID_CAP_MICROPHONE" />
+ <Capability Name="ID_HW_FRONTCAMERA" />
+ <Capability Name="ID_CAP_ISV_CAMERA" />
+ <Capability Name="ID_CAP_CAMERA" />
+ </Capabilities>
+
+ Reference: [Application Manifest for Windows Phone](http://msdn.microsoft.com/en-us/library/ff769509%28v=vs.92%29.aspx)
+
+Some platforms may support this feature without requiring any special
+configuration. See Platform Support for an overview.
+
+## Windows Phone Quirks
+
+- Only one media file can be played back at a time.
+
+- There are strict restrictions on how your application interacts with other media. See the [Microsoft documentation for details][url].
+
+[url]: http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh184838(v=vs.92).aspx
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/media/media.pause.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/media/media.pause.md b/docs/en/3.3.0/cordova/media/media.pause.md
new file mode 100644
index 0000000..aa1c7fe
--- /dev/null
+++ b/docs/en/3.3.0/cordova/media/media.pause.md
@@ -0,0 +1,162 @@
+---
+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.
+---
+
+# media.pause
+
+Pauses playing an audio file.
+
+ media.pause();
+
+## Description
+
+The `media.pause` method executes synchronously, and pauses playing an audio file.
+
+## Supported Platforms
+
+- Android
+- BlackBerry 10
+- iOS
+- Windows Phone 7 and 8
+- Tizen
+- Windows 8
+
+## Quick Example
+
+ // Play audio
+ //
+ function playAudio(url) {
+ // Play the audio file at url
+ var my_media = new Media(url,
+ // success callback
+ function () { console.log("playAudio():Audio Success"); },
+ // error callback
+ function (err) { console.log("playAudio():Audio Error: " + err); }
+ );
+
+ // Play audio
+ my_media.play();
+
+ // Pause after 10 seconds
+ setTimeout(function () {
+ media.pause();
+ }, 10000);
+ }
+
+## Full Example
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+ <html>
+ <head>
+ <title>Media Example</title>
+
+ <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+ <script type="text/javascript" charset="utf-8">
+
+ // Wait for device API libraries to load
+ //
+ document.addEventListener("deviceready", onDeviceReady, false);
+
+ // device APIs are available
+ //
+ function onDeviceReady() {
+ playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
+ }
+
+ // Audio player
+ //
+ var my_media = null;
+ var mediaTimer = null;
+
+ // Play audio
+ //
+ function playAudio(src) {
+ // Create Media object from src
+ my_media = new Media(src, onSuccess, onError);
+
+ // Play audio
+ my_media.play();
+
+ // Update my_media position every second
+ if (mediaTimer == null) {
+ mediaTimer = setInterval(function() {
+ // get my_media position
+ my_media.getCurrentPosition(
+ // success callback
+ function(position) {
+ if (position > -1) {
+ setAudioPosition((position) + " sec");
+ }
+ },
+ // error callback
+ function(e) {
+ console.log("Error getting pos=" + e);
+ setAudioPosition("Error: " + e);
+ }
+ );
+ }, 1000);
+ }
+ }
+
+ // Pause audio
+ //
+ function pauseAudio() {
+ if (my_media) {
+ my_media.pause();
+ }
+ }
+
+ // Stop audio
+ //
+ function stopAudio() {
+ if (my_media) {
+ my_media.stop();
+ }
+ clearInterval(mediaTimer);
+ mediaTimer = null;
+ }
+
+ // onSuccess Callback
+ //
+ function onSuccess() {
+ console.log("playAudio():Audio Success");
+ }
+
+ // onError Callback
+ //
+ function onError(error) {
+ alert('code: ' + error.code + '\n' +
+ 'message: ' + error.message + '\n');
+ }
+
+ // Set audio position
+ //
+ function setAudioPosition(position) {
+ document.getElementById('audio_position').innerHTML = position;
+ }
+
+ </script>
+ </head>
+ <body>
+ <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>
+ <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
+ <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
+ <p id="audio_position"></p>
+ </body>
+ </html>
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/media/media.play.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/media/media.play.md b/docs/en/3.3.0/cordova/media/media.play.md
new file mode 100644
index 0000000..4815263
--- /dev/null
+++ b/docs/en/3.3.0/cordova/media/media.play.md
@@ -0,0 +1,185 @@
+---
+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.
+---
+
+# media.play
+
+Starts or resumes playing an audio file.
+
+ media.play();
+
+## Description
+
+The `media.play` method executes synchronously, and starts or resumes
+playing an audio file.
+
+## Supported Platforms
+
+- Android
+- BlackBerry 10
+- iOS
+- Windows Phone 7 and 8
+- Tizen
+- Windows 8
+
+## Quick Example
+
+ // Play audio
+ //
+ function playAudio(url) {
+ // Play the audio file at url
+ var my_media = new Media(url,
+ // success callback
+ function () {
+ console.log("playAudio():Audio Success");
+ },
+ // error callback
+ function (err) {
+ console.log("playAudio():Audio Error: " + err);
+ }
+ );
+ // Play audio
+ my_media.play();
+ }
+
+## Full Example
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+ <html>
+ <head>
+ <title>Media Example</title>
+
+ <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+ <script type="text/javascript" charset="utf-8">
+
+ // Wait for device API libraries to load
+ //
+ document.addEventListener("deviceready", onDeviceReady, false);
+
+ // device APIs are available
+ //
+ function onDeviceReady() {
+ playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
+ }
+
+ // Audio player
+ //
+ var my_media = null;
+ var mediaTimer = null;
+
+ // Play audio
+ //
+ function playAudio(src) {
+ if (my_media == null) {
+ // Create Media object from src
+ my_media = new Media(src, onSuccess, onError);
+ } // else play current audio
+ // Play audio
+ my_media.play();
+
+ // Update my_media position every second
+ if (mediaTimer == null) {
+ mediaTimer = setInterval(function() {
+ // get my_media position
+ my_media.getCurrentPosition(
+ // success callback
+ function(position) {
+ if (position > -1) {
+ setAudioPosition((position) + " sec");
+ }
+ },
+ // error callback
+ function(e) {
+ console.log("Error getting pos=" + e);
+ setAudioPosition("Error: " + e);
+ }
+ );
+ }, 1000);
+ }
+ }
+
+ // Pause audio
+ //
+ function pauseAudio() {
+ if (my_media) {
+ my_media.pause();
+ }
+ }
+
+ // Stop audio
+ //
+ function stopAudio() {
+ if (my_media) {
+ my_media.stop();
+ }
+ clearInterval(mediaTimer);
+ mediaTimer = null;
+ }
+
+ // onSuccess Callback
+ //
+ function onSuccess() {
+ console.log("playAudio():Audio Success");
+ }
+
+ // onError Callback
+ //
+ function onError(error) {
+ alert('code: ' + error.code + '\n' +
+ 'message: ' + error.message + '\n');
+ }
+
+ // Set audio position
+ //
+ function setAudioPosition(position) {
+ document.getElementById('audio_position').innerHTML = position;
+ }
+
+ </script>
+ </head>
+ <body>
+ <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>
+ <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
+ <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
+ <p id="audio_position"></p>
+ </body>
+ </html>
+
+## iOS Quirks
+
+- __numberOfLoops__: Pass this option to the `play` method to specify
+ the number of times you want the media file to play, e.g.:
+
+ var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3")
+ myMedia.play({ numberOfLoops: 2 })
+
+- __playAudioWhenScreenIsLocked__: Pass in this option to the `play`
+ method to specify whether you want to allow playback when the screen
+ is locked. If set to `true` (the default value), the state of the
+ hardware mute button is ignored, e.g.:
+
+ var myMedia = new Media("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3")
+ myMedia.play({ playAudioWhenScreenIsLocked : false })
+
+- __order of file search__: When only a file name or simple path is
+ provided, iOS searches in the `www` directory for the file, then in
+ the application's `documents/tmp` directory:
+
+ var myMedia = new Media("audio/beer.mp3")
+ myMedia.play() // first looks for file in www/audio/beer.mp3 then in <application>/documents/tmp/audio/beer.mp3
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/media/media.release.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/media/media.release.md b/docs/en/3.3.0/cordova/media/media.release.md
new file mode 100644
index 0000000..e06d0a1
--- /dev/null
+++ b/docs/en/3.3.0/cordova/media/media.release.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.
+---
+
+# media.release
+
+Releases the underlying operating system's audio resources.
+
+ media.release();
+
+## Description
+
+The `media.release` method executes synchronously, releasing the
+underlying operating system's audio resources. This is particularly
+important for Android, since there are a finite amount of OpenCore
+instances for media playback. Applications should call the `release`
+function for any `Media` resource that is no longer needed.
+
+## Supported Platforms
+
+- Android
+- BlackBerry 10
+- iOS
+- Windows Phone 7 and 8
+- Tizen
+- Windows 8
+
+## Quick Example
+
+ // Audio player
+ //
+ var my_media = new Media(src, onSuccess, onError);
+
+ my_media.play();
+ my_media.stop();
+ my_media.release();
+
+## Full Example
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+ <html>
+ <head>
+ <title>Media Example</title>
+
+ <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+ <script type="text/javascript" charset="utf-8">
+
+ // Wait for device API libraries to load
+ //
+ document.addEventListener("deviceready", onDeviceReady, false);
+
+ // device APIs are available
+ //
+ function onDeviceReady() {
+ playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
+ }
+
+ // Audio player
+ //
+ var my_media = null;
+ var mediaTimer = null;
+
+ // Play audio
+ //
+ function playAudio(src) {
+ // Create Media object from src
+ my_media = new Media(src, onSuccess, onError);
+
+ // Play audio
+ my_media.play();
+
+ // Update my_media position every second
+ if (mediaTimer == null) {
+ mediaTimer = setInterval(function() {
+ // get my_media position
+ my_media.getCurrentPosition(
+ // success callback
+ function(position) {
+ if (position > -1) {
+ setAudioPosition((position) + " sec");
+ }
+ },
+ // error callback
+ function(e) {
+ console.log("Error getting pos=" + e);
+ setAudioPosition("Error: " + e);
+ }
+ );
+ }, 1000);
+ }
+ }
+
+ // Pause audio
+ //
+ function pauseAudio() {
+ if (my_media) {
+ my_media.pause();
+ }
+ }
+
+ // Stop audio
+ //
+ function stopAudio() {
+ if (my_media) {
+ my_media.stop();
+ }
+ clearInterval(mediaTimer);
+ mediaTimer = null;
+ }
+
+ // onSuccess Callback
+ //
+ function onSuccess() {
+ console.log("playAudio():Audio Success");
+ }
+
+ // onError Callback
+ //
+ function onError(error) {
+ alert('code: ' + error.code + '\n' +
+ 'message: ' + error.message + '\n');
+ }
+
+ // Set audio position
+ //
+ function setAudioPosition(position) {
+ document.getElementById('audio_position').innerHTML = position;
+ }
+
+ </script>
+ </head>
+ <body>
+ <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>
+ <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
+ <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
+ <p id="audio_position"></p>
+ </body>
+ </html>
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/media/media.seekTo.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/media/media.seekTo.md b/docs/en/3.3.0/cordova/media/media.seekTo.md
new file mode 100644
index 0000000..23fc574
--- /dev/null
+++ b/docs/en/3.3.0/cordova/media/media.seekTo.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.
+---
+
+# media.seekTo
+
+Sets the current position within an audio file.
+
+ media.seekTo(milliseconds);
+
+## Parameters
+
+- __milliseconds__: The position to set the playback position within the audio, in milliseconds.
+
+## Description
+
+The `media.seekTo` executes asynchronously, updating the current
+playback position within an audio file referenced by a `Media`
+object. Also updates the `Media` object's `position` parameter.
+
+## Supported Platforms
+
+- Android
+- BlackBerry 10 (OS 6.0 and higher)
+- iOS
+- Windows Phone 7 and 8
+- Tizen
+- Windows 8
+
+## Quick Example
+
+ // Audio player
+ //
+ var my_media = new Media(src, onSuccess, onError);
+ my_media.play();
+ // SeekTo to 10 seconds after 5 seconds
+ setTimeout(function() {
+ my_media.seekTo(10000);
+ }, 5000);
+
+## Full Example
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+ <html>
+ <head>
+ <title>Media Example</title>
+
+ <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+ <script type="text/javascript" charset="utf-8">
+
+ // Wait for device API libraries to load
+ //
+ document.addEventListener("deviceready", onDeviceReady, false);
+
+ // device APIs are available
+ //
+ function onDeviceReady() {
+ playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
+ }
+
+ // Audio player
+ //
+ var my_media = null;
+ var mediaTimer = null;
+
+ // Play audio
+ //
+ function playAudio(src) {
+ // Create Media object from src
+ my_media = new Media(src, onSuccess, onError);
+
+ // Play audio
+ my_media.play();
+
+ // Update media position every second
+ mediaTimer = setInterval(function() {
+ // get media position
+ my_media.getCurrentPosition(
+ // success callback
+ function(position) {
+ if (position > -1) {
+ setAudioPosition(position + " sec");
+ }
+ },
+ // error callback
+ function(e) {
+ console.log("Error getting pos=" + e);
+ }
+ );
+ }, 1000);
+
+ // SeekTo to 10 seconds after 5 seconds
+ setTimeout(function() {
+ my_media.seekTo(10000);
+ }, 5000);
+ }
+
+ // Stop audio
+ //
+ function stopAudio() {
+ if (my_media) {
+ my_media.stop();
+ }
+ clearInterval(mediaTimer);
+ mediaTimer = null;
+ }
+
+ // onSuccess Callback
+ //
+ function onSuccess() {
+ console.log("playAudio():Audio Success");
+ }
+
+ // onError Callback
+ //
+ function onError(error) {
+ alert('code: ' + error.code + '\n' +
+ 'message: ' + error.message + '\n');
+ }
+
+ // Set audio position
+ //
+ function setAudioPosition(position) {
+ document.getElementById('audio_position').innerHTML = position;
+ }
+
+ </script>
+ </head>
+ <body>
+ <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>
+ <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
+ <p id="audio_position"></p>
+ </body>
+ </html>
+
+## BlackBerry 10 Quirks
+
+- Not supported on BlackBerry OS 5 devices.
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/media/media.setVolume.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/media/media.setVolume.md b/docs/en/3.3.0/cordova/media/media.setVolume.md
new file mode 100644
index 0000000..403858e
--- /dev/null
+++ b/docs/en/3.3.0/cordova/media/media.setVolume.md
@@ -0,0 +1,171 @@
+---
+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.
+---
+
+# media.setVolume
+
+Set the volume for an audio file.
+
+ media.setVolume(volume);
+
+## Parameters
+
+- __volume__: The volume to set for playback. The value must be within the range of 0.0 to 1.0.
+
+## Description
+
+Function `media.setVolume` is an asynchronous function that sets the volume during audio playback.
+
+## Supported Platforms
+
+- Android
+- iOS
+
+## Quick Example
+
+ // Play audio
+ //
+ function playAudio(url) {
+ // Play the audio file at url
+ var my_media = new Media(url,
+ // success callback
+ function() {
+ console.log("playAudio():Audio Success");
+ },
+ // error callback
+ function(err) {
+ console.log("playAudio():Audio Error: "+err);
+ });
+
+ // Play audio
+ my_media.play();
+
+ // Mute volume after 2 seconds
+ setTimeout(function() {
+ my_media.setVolume('0.0');
+ }, 2000);
+
+ // Set volume to 1.0 after 5 seconds
+ setTimeout(function() {
+ my_media.setVolume('1.0');
+ }, 5000);
+ }
+
+## Full Example
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+ <html>
+ <head>
+ <title>Media Example</title>
+
+ <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+ <script type="text/javascript" charset="utf-8">
+
+ // Wait for Cordova to load
+ //
+ document.addEventListener("deviceready", onDeviceReady, false);
+
+ // Cordova is ready
+ //
+ function onDeviceReady() {
+ playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
+ }
+
+ // Audio player
+ //
+ var my_media = null;
+ var mediaTimer = null;
+
+ // Play audio
+ //
+ function playAudio(src) {
+ // Create Media object from src
+ my_media = new Media(src, onSuccess, onError);
+
+ // Play audio
+ my_media.play();
+
+ // Update my_media position every second
+ if (mediaTimer == null) {
+ mediaTimer = setInterval(function() {
+ // get my_media position
+ my_media.getCurrentPosition(
+ // success callback
+ function(position) {
+ if (position > -1) {
+ setAudioPosition((position) + " sec");
+ }
+ },
+ // error callback
+ function(e) {
+ console.log("Error getting pos=" + e);
+ setAudioPosition("Error: " + e);
+ }
+ );
+ }, 1000);
+ }
+ }
+
+ // Set audio volume
+ //
+ function setVolume(volume) {
+ if (my_media) {
+ my_media.setVolume(volume);
+ }
+ }
+
+ // Stop audio
+ //
+ function stopAudio() {
+ if (my_media) {
+ my_media.stop();
+ }
+ clearInterval(mediaTimer);
+ mediaTimer = null;
+ }
+
+ // onSuccess Callback
+ //
+ function onSuccess() {
+ console.log("playAudio():Audio Success");
+ }
+
+ // onError Callback
+ //
+ function onError(error) {
+ alert('code: ' + error.code + '\n' +
+ 'message: ' + error.message + '\n');
+ }
+
+ // Set audio position
+ //
+ function setAudioPosition(position) {
+ document.getElementById('audio_position').innerHTML = position;
+ }
+
+ </script>
+ </head>
+ <body>
+ <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>
+ <a href="#" class="btn large" onclick="setVolume('0.0');">Mute Audio</a>
+ <a href="#" class="btn large" onclick="setVolume('1.0');">Unmute Audio</a>
+ <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
+ <p id="audio_position"></p>
+ </body>
+ </html>
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/media/media.startRecord.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/media/media.startRecord.md b/docs/en/3.3.0/cordova/media/media.startRecord.md
new file mode 100644
index 0000000..3f998ef
--- /dev/null
+++ b/docs/en/3.3.0/cordova/media/media.startRecord.md
@@ -0,0 +1,143 @@
+---
+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.
+---
+
+# media.startRecord
+
+Starts recording an audio file.
+
+ media.startRecord();
+
+## Description
+
+The `media.startRecord` method executes synchronously, starts a
+recording for an audio file.
+
+## Supported Platforms
+
+- Android
+- iOS
+- Windows Phone 7 and 8
+- Windows 8
+
+## Quick Example
+
+ // Record audio
+ //
+ function recordAudio() {
+ var src = "myrecording.mp3";
+ var mediaRec = new Media(src,
+ // success callback
+ function() {
+ console.log("recordAudio():Audio Success");
+ },
+
+ // error callback
+ function(err) {
+ console.log("recordAudio():Audio Error: "+ err.code);
+ });
+
+ // Record audio
+ mediaRec.startRecord();
+ }
+
+## Full Example
+
+ <!DOCTYPE html>
+ <html>
+ <head>
+ <title>Device Properties Example</title>
+
+ <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+ <script type="text/javascript" charset="utf-8">
+
+ // Wait for device API libraries to load
+ //
+ document.addEventListener("deviceready", onDeviceReady, false);
+
+ // Record audio
+ //
+ function recordAudio() {
+ var src = "myrecording.amr";
+ var mediaRec = new Media(src, onSuccess, onError);
+
+ // Record audio
+ mediaRec.startRecord();
+
+ // Stop recording after 10 sec
+ var recTime = 0;
+ var recInterval = setInterval(function() {
+ recTime = recTime + 1;
+ setAudioPosition(recTime + " sec");
+ if (recTime >= 10) {
+ clearInterval(recInterval);
+ mediaRec.stopRecord();
+ }
+ }, 1000);
+ }
+
+ // device APIs are available
+ //
+ function onDeviceReady() {
+ recordAudio();
+ }
+
+ // onSuccess Callback
+ //
+ function onSuccess() {
+ console.log("recordAudio():Audio Success");
+ }
+
+ // onError Callback
+ //
+ function onError(error) {
+ alert('code: ' + error.code + '\n' +
+ 'message: ' + error.message + '\n');
+ }
+
+ // Set audio position
+ //
+ function setAudioPosition(position) {
+ document.getElementById('audio_position').innerHTML = position;
+ }
+
+ </script>
+ </head>
+ <body>
+ <p id="media">Recording audio...</p>
+ <p id="audio_position"></p>
+ </body>
+ </html>
+
+## Android Quirks
+
+- Android devices record audio in Adaptive Multi-Rate format. The specified file should end with a _.amr_ extension.
+
+## iOS Quirks
+
+- iOS only records to files of type _.wav_ and returns an error if the file name extension is not correct.
+
+- If a full path is not provided, the recording is placed in the application's `documents/tmp` directory. This can be accessed via the `File` API using `LocalFileSystem.TEMPORARY`. Any subdirectory specified at record time must already exist.
+
+- Files can be recorded and played back using the documents URI:
+
+ var myMedia = new Media("documents://beer.mp3")
+
+## Tizen Quirks
+
+- Not supported on Tizen devices.
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/media/media.stop.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/media/media.stop.md b/docs/en/3.3.0/cordova/media/media.stop.md
new file mode 100644
index 0000000..bfcab73
--- /dev/null
+++ b/docs/en/3.3.0/cordova/media/media.stop.md
@@ -0,0 +1,167 @@
+---
+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.
+---
+
+# media.stop
+
+Stops playing an audio file.
+
+ media.stop();
+
+## Description
+
+The `media.stop` method executes synchronously to stop playing an
+audio file.
+
+## Supported Platforms
+
+- Android
+- BlackBerry 10
+- iOS
+- Windows Phone 7 and 8
+- Tizen
+- Windows 8
+
+## Quick Example
+
+ // Play audio
+ //
+ function playAudio(url) {
+ // Play the audio file at url
+ var my_media = new Media(url,
+ // success callback
+ function() {
+ console.log("playAudio():Audio Success");
+ },
+ // error callback
+ function(err) {
+ console.log("playAudio():Audio Error: "+err);
+ }
+ );
+
+ // Play audio
+ my_media.play();
+
+ // Pause after 10 seconds
+ setTimeout(function() {
+ my_media.stop();
+ }, 10000);
+ }
+
+## Full Example
+
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+ "http://www.w3.org/TR/html4/strict.dtd">
+ <html>
+ <head>
+ <title>Media Example</title>
+
+ <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+ <script type="text/javascript" charset="utf-8">
+
+ // Wait for device API libraries to load
+ //
+ document.addEventListener("deviceready", onDeviceReady, false);
+
+ // device APIs are available
+ //
+ function onDeviceReady() {
+ playAudio("http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3");
+ }
+
+ // Audio player
+ //
+ var my_media = null;
+ var mediaTimer = null;
+
+ // Play audio
+ //
+ function playAudio(src) {
+ // Create Media object from src
+ my_media = new Media(src, onSuccess, onError);
+
+ // Play audio
+ my_media.play();
+
+ // Update my_media position every second
+ if (mediaTimer == null) {
+ mediaTimer = setInterval(function() {
+ // get my_media position
+ my_media.getCurrentPosition(
+ // success callback
+ function(position) {
+ if (position > -1) {
+ setAudioPosition((position) + " sec");
+ }
+ },
+ // error callback
+ function(e) {
+ console.log("Error getting pos=" + e);
+ setAudioPosition("Error: " + e);
+ }
+ );
+ }, 1000);
+ }
+ }
+
+ // Pause audio
+ //
+ function pauseAudio() {
+ if (my_media) {
+ my_media.pause();
+ }
+ }
+
+ // Stop audio
+ //
+ function stopAudio() {
+ if (my_media) {
+ my_media.stop();
+ }
+ clearInterval(mediaTimer);
+ mediaTimer = null;
+ }
+
+ // onSuccess Callback
+ //
+ function onSuccess() {
+ console.log("playAudio():Audio Success");
+ }
+
+ // onError Callback
+ //
+ function onError(error) {
+ alert('code: ' + error.code + '\n' +
+ 'message: ' + error.message + '\n');
+ }
+
+ // Set audio position
+ //
+ function setAudioPosition(position) {
+ document.getElementById('audio_position').innerHTML = position;
+ }
+
+ </script>
+ </head>
+ <body>
+ <a href="#" class="btn large" onclick="playAudio('http://audio.ibeat.org/content/p1rj1s/p1rj1s_-_rockGuitar.mp3');">Play Audio</a>
+ <a href="#" class="btn large" onclick="pauseAudio();">Pause Playing Audio</a>
+ <a href="#" class="btn large" onclick="stopAudio();">Stop Playing Audio</a>
+ <p id="audio_position"></p>
+ </body>
+ </html>
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/media/media.stopRecord.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/media/media.stopRecord.md b/docs/en/3.3.0/cordova/media/media.stopRecord.md
new file mode 100644
index 0000000..472ef2a
--- /dev/null
+++ b/docs/en/3.3.0/cordova/media/media.stopRecord.md
@@ -0,0 +1,135 @@
+---
+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.
+---
+
+# media.stopRecord
+
+Stops recording an audio file.
+
+ media.stopRecord();
+
+## Description
+
+The `media.stopRecord` method executes synchronously, stopping the
+recording of an audio file.
+
+## Supported Platforms
+
+- Android
+- iOS
+- Windows Phone 7 and 8
+- Windows 8
+
+## Quick Example
+
+ // Record audio
+ //
+ function recordAudio() {
+ var src = "myrecording.mp3";
+ var mediaRec = new Media(src,
+ // success callback
+ function() {
+ console.log("recordAudio():Audio Success");
+ },
+
+ // error callback
+ function(err) {
+ console.log("recordAudio():Audio Error: "+ err.code);
+ }
+ );
+
+ // Record audio
+ mediaRec.startRecord();
+
+ // Stop recording after 10 seconds
+ setTimeout(function() {
+ mediaRec.stopRecord();
+ }, 10000);
+ }
+
+## Full Example
+
+ <!DOCTYPE html>
+ <html>
+ <head>
+ <title>Device Properties Example</title>
+
+ <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+ <script type="text/javascript" charset="utf-8">
+
+ // Wait for device API libraries to load
+ //
+ document.addEventListener("deviceready", onDeviceReady, false);
+
+ // Record audio
+ //
+ function recordAudio() {
+ var src = "myrecording.mp3";
+ var mediaRec = new Media(src, onSuccess, onError);
+
+ // Record audio
+ mediaRec.startRecord();
+
+ // Stop recording after 10 sec
+ var recTime = 0;
+ var recInterval = setInterval(function() {
+ recTime = recTime + 1;
+ setAudioPosition(recTime + " sec");
+ if (recTime >= 10) {
+ clearInterval(recInterval);
+ mediaRec.stopRecord();
+ }
+ }, 1000);
+ }
+
+ // device APIs are available
+ //
+ function onDeviceReady() {
+ recordAudio();
+ }
+
+ // onSuccess Callback
+ //
+ function onSuccess() {
+ console.log("recordAudio():Audio Success");
+ }
+
+ // onError Callback
+ //
+ function onError(error) {
+ alert('code: ' + error.code + '\n' +
+ 'message: ' + error.message + '\n');
+ }
+
+ // Set audio position
+ //
+ function setAudioPosition(position) {
+ document.getElementById('audio_position').innerHTML = position;
+ }
+
+ </script>
+ </head>
+ <body>
+ <p id="media">Recording audio...</p>
+ <p id="audio_position"></p>
+ </body>
+ </html>
+
+## Tizen Quirks
+
+- Not supported on Tizen devices.
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/notification/notification.alert.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/notification/notification.alert.md b/docs/en/3.3.0/cordova/notification/notification.alert.md
new file mode 100644
index 0000000..fba120d
--- /dev/null
+++ b/docs/en/3.3.0/cordova/notification/notification.alert.md
@@ -0,0 +1,115 @@
+---
+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.
+---
+
+# notification.alert
+
+Shows a custom alert or dialog box.
+
+ navigator.notification.alert(message, alertCallback, [title], [buttonName])
+
+- __message__: Dialog message. _(String)_
+
+- __alertCallback__: Callback to invoke when alert dialog is dismissed. _(Function)_
+
+- __title__: Dialog title. _(String)_ (Optional, defaults to `Alert`)
+
+- __buttonName__: Button name. _(String)_ (Optional, defaults to `OK`)
+
+## Description
+
+Most Cordova implementations use a native dialog box for this feature,
+but some platforms use the browser's `alert` function, which is
+typically less customizable.
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- iOS
+- Tizen
+- Windows Phone 7 and 8
+- Windows 8
+
+## Quick Example
+
+ // Amazon Fire OS / Android / BlackBerry 10 (OS 5.0 and higher) / iOS / Tizen
+ //
+ function alertDismissed() {
+ // do something
+ }
+
+ navigator.notification.alert(
+ 'You are the winner!', // message
+ alertDismissed, // callback
+ 'Game Over', // title
+ 'Done' // buttonName
+ );
+
+## Full Example
+
+ <!DOCTYPE html>
+ <html>
+ <head>
+ <title>Notification Example</title>
+
+ <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+ <script type="text/javascript" charset="utf-8">
+
+ // Wait for device API libraries to load
+ //
+ document.addEventListener("deviceready", onDeviceReady, false);
+
+ // device APIs are available
+ //
+ function onDeviceReady() {
+ // Empty
+ }
+
+ // alert dialog dismissed
+ function alertDismissed() {
+ // do something
+ }
+
+ // Show a custom alertDismissed
+ //
+ function showAlert() {
+ navigator.notification.alert(
+ 'You are the winner!', // message
+ alertDismissed, // callback
+ 'Game Over', // title
+ 'Done' // buttonName
+ );
+ }
+
+ </script>
+ </head>
+ <body>
+ <p><a href="#" onclick="showAlert(); return false;">Show Alert</a></p>
+ </body>
+ </html>
+
+## Windows Phone 7 and 8 Quirks
+
+- There is no built-in browser alert, but you can bind one as follows to call `alert()` in the global scope:
+
+ window.alert = navigator.notification.alert;
+
+- Both `alert` and `confirm` are non-blocking calls, results of which are only available asynchronously.
+
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/notification/notification.beep.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/notification/notification.beep.md b/docs/en/3.3.0/cordova/notification/notification.beep.md
new file mode 100644
index 0000000..75af9b0
--- /dev/null
+++ b/docs/en/3.3.0/cordova/notification/notification.beep.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.
+---
+
+# notification.beep
+
+The device plays a beep sound.
+
+ navigator.notification.beep(times);
+
+- __times__: The number of times to repeat the beep. _(Number)_
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- iOS
+- Tizen
+- Windows Phone 7 and 8
+- Windows 8
+
+## Quick Example
+
+ // Beep twice!
+ navigator.notification.beep(2);
+
+## Full Example
+
+ <!DOCTYPE html>
+ <html>
+ <head>
+ <title>Notification Example</title>
+
+ <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+ <script type="text/javascript" charset="utf-8">
+
+ // Wait for device API libraries to load
+ //
+ document.addEventListener("deviceready", onDeviceReady, false);
+
+ // device APIs are available
+ //
+ function onDeviceReady() {
+ // Empty
+ }
+
+ // Show a custom alert
+ //
+ function showAlert() {
+ navigator.notification.alert(
+ 'You are the winner!', // message
+ 'Game Over', // title
+ 'Done' // buttonName
+ );
+ }
+
+ // Beep three times
+ //
+ function playBeep() {
+ navigator.notification.beep(3);
+ }
+
+ // Vibrate for 2 seconds
+ //
+ function vibrate() {
+ navigator.notification.vibrate(2000);
+ }
+
+ </script>
+ </head>
+ <body>
+ <p><a href="#" onclick="showAlert(); return false;">Show Alert</a></p>
+ <p><a href="#" onclick="playBeep(); return false;">Play Beep</a></p>
+ <p><a href="#" onclick="vibrate(); return false;">Vibrate</a></p>
+ </body>
+ </html>
+
+## Amazon Fire OS Quirks
+
+- Amazon Fire OS plays the default __Notification Sound__ specified under the __Settings/Display & Sound__ panel.
+
+## Android Quirks
+
+- Android plays the default __Notification ringtone__ specified under the __Settings/Sound & Display__ panel.
+
+## Windows Phone 7 and 8 Quirks
+
+- Relies on a generic beep file from the Cordova distribution.
+
+## Tizen Quirks
+
+- Tizen implements beeps by playing an audio file via the media API.
+
+- The beep file must be short, must be located in a `sounds` subdirectory of the application's root directory, and must be named `beep.wav`.
+
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/notification/notification.confirm.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/notification/notification.confirm.md b/docs/en/3.3.0/cordova/notification/notification.confirm.md
new file mode 100755
index 0000000..01c97ea
--- /dev/null
+++ b/docs/en/3.3.0/cordova/notification/notification.confirm.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.
+---
+
+# notification.confirm
+
+Displays a customizable confirmation dialog box.
+
+ navigator.notification.confirm(message, confirmCallback, [title], [buttonLabels])
+
+- __message__: Dialog message. _(String)_
+
+- __confirmCallback__: Callback to invoke with index of button pressed (1, 2, or 3) or when the dialog is dismissed without a button press (0). _(Function)_
+
+- __title__: Dialog title. _(String)_ (Optional, defaults to `Confirm`)
+
+- __buttonLabels__: Array of strings specifying button labels. _(Array)_ (Optional, defaults to [`OK,Cancel`])
+
+## Description
+
+The `notification.confirm` method displays a native dialog box that is
+more customizable than the browser's `confirm` function.
+
+## confirmCallback
+
+The `confirmCallback` executes when the user presses one of the
+buttons in the confirmation dialog box.
+
+The callback takes the argument `buttonIndex` _(Number)_, which is the
+index of the pressed button. Note that the index uses one-based
+indexing, so the value is `1`, `2`, `3`, etc.
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- iOS
+- Tizen
+- Windows Phone 7 and 8
+- Windows 8
+
+## Quick Example
+
+ // process the confirmation dialog result
+ function onConfirm(buttonIndex) {
+ alert('You selected button ' + buttonIndex);
+ }
+
+ // Show a custom confirmation dialog
+ //
+ function showConfirm() {
+ navigator.notification.confirm(
+ 'You are the winner!', // message
+ onConfirm, // callback to invoke with index of button pressed
+ 'Game Over', // title
+ ['Restart','Exit'] // buttonLabels
+ );
+ }
+
+## Full Example
+
+ <!DOCTYPE html>
+ <html>
+ <head>
+ <title>Notification Example</title>
+
+ <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+ <script type="text/javascript" charset="utf-8">
+
+ // Wait for device API libraries to load
+ //
+ document.addEventListener("deviceready", onDeviceReady, false);
+
+ // device APIs are available
+ //
+ function onDeviceReady() {
+ // Empty
+ }
+
+ // process the confirmation dialog result
+ function onConfirm(buttonIndex) {
+ alert('You selected button ' + buttonIndex);
+ }
+
+ // Show a custom confirmation dialog
+ //
+ function showConfirm() {
+ navigator.notification.confirm(
+ 'You are the winner!', // message
+ onConfirm, // callback to invoke with index of button pressed
+ 'Game Over', // title
+ ['Restart','Exit'] // buttonLabels
+ );
+ }
+
+ </script>
+ </head>
+ <body>
+ <p><a href="#" onclick="showConfirm(); return false;">Show Confirm</a></p>
+ </body>
+ </html>
+
+## Windows Phone 7 and 8 Quirks
+
+- There is no built-in browser function for `window.confirm`, but you can bind it by assigning:
+
+ window.confirm = navigator.notification.confirm;
+
+- Calls to `alert` and `confirm` are non-blocking, so the result is only available asynchronously.
+
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/notification/notification.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/notification/notification.md b/docs/en/3.3.0/cordova/notification/notification.md
new file mode 100644
index 0000000..7d9b1f7
--- /dev/null
+++ b/docs/en/3.3.0/cordova/notification/notification.md
@@ -0,0 +1,87 @@
+---
+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.
+---
+
+# Notification
+
+> Visual, audible, and tactile device notifications.
+
+## Methods
+
+- `notification.alert`
+- `notification.confirm`
+- `notification.prompt`
+- `notification.beep`
+- `notification.vibrate`
+
+## Accessing the Feature
+
+As of version 3.0, Cordova implements device-level APIs as _plugins_.
+Use the CLI's `plugin` command, described in The Command-Line
+Interface, to add or remove this feature for a project:
+
+ $ cordova plugin add org.apache.cordova.dialogs
+ $ cordova plugin add org.apache.cordova.vibration
+ $ cordova plugin ls
+ [ 'org.apache.cordova.dialogs',
+ 'org.apache.cordova.vibration' ]
+ $ cordova plugin rm org.apache.cordova.dialogs
+ $ cordova plugin rm org.apache.cordova.vibration
+
+These commands apply to all targeted platforms, but modify the
+platform-specific configuration settings described below:
+
+* Amazon Fire OS
+
+ (in app/res/xml/config.xml)
+ <feature name="Notification">
+ <param name="android-package" value="org.apache.cordova.dialogs.Notification" />
+ </feature>
+ <feature name="Vibration">
+ <param name="android-package" value="org.apache.cordova.vibration.Vibration" />
+ </feature>
+
+ (in app/AndroidManifest.xml)
+ <uses-permission android:name="android.permission.VIBRATE" />
+
+* Android
+
+ (in app/res/xml/config.xml)
+ <feature name="Notification">
+ <param name="android-package" value="org.apache.cordova.dialogs.Notification" />
+ </feature>
+ <feature name="Vibration">
+ <param name="android-package" value="org.apache.cordova.vibration.Vibration" />
+ </feature>
+
+ (in app/AndroidManifest.xml)
+ <uses-permission android:name="android.permission.VIBRATE" />
+
+* BlackBerry 10
+
+ (in www/config.xml)
+ <feature name="Notification" value="Notification"/>
+
+* iOS (in the named application directory's `config.xml`)
+
+ <feature name="Notification">
+ <param name="ios-package" value="CDVNotification" />
+ </feature>
+
+Some platforms may support this feature without requiring any special
+configuration. See Platform Support for an overview.
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/notification/notification.prompt.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/notification/notification.prompt.md b/docs/en/3.3.0/cordova/notification/notification.prompt.md
new file mode 100644
index 0000000..be00e1d
--- /dev/null
+++ b/docs/en/3.3.0/cordova/notification/notification.prompt.md
@@ -0,0 +1,124 @@
+---
+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.
+---
+
+# notification.prompt
+
+Shows a customizable prompt dialog box.
+
+ navigator.notification.prompt(message, promptCallback, [title], [buttonLabels], [defaultText])
+
+- __message__: Dialog message. _(String)_
+
+- __promptCallback__: Callback to invoke when a button is pressed. _(Function)_
+
+- __title__: Dialog title _(String)_ (Optional, defaults to `Prompt`)
+
+- __buttonLabels__: Array of strings specifying button labels _(Array)_ (Optional, defaults to `["OK","Cancel"]`)
+
+- __defaultText__: Default textbox input value (`String`) (Optional, Default: empty string)
+
+## Description
+
+The `notification.prompt` method displays a native dialog box that is
+more customizable than the browser's `prompt` function.
+
+## promptCallback
+
+The `promptCallback` executes when the user presses one of the buttons
+in the prompt dialog box. The `results` object passed to the callback
+contains the following properties:
+
+- __buttonIndex__: The index of the pressed button. _(Number)_ Note that the index uses one-based indexing, so the value is `1`, `2`, `3`, etc.
+
+- __input1__: The text entered in the prompt dialog box. _(String)_
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- iOS
+
+## Quick Example
+
+ // process the promp dialog results
+ function onPrompt(results) {
+ alert("You selected button number " + results.buttonIndex + " and entered " + results.input1);
+ }
+
+ // Show a custom prompt dialog
+ //
+ function showPrompt() {
+ navigator.notification.prompt(
+ 'Please enter your name', // message
+ onPrompt, // callback to invoke
+ 'Registration', // title
+ ['Ok','Exit'], // buttonLabels
+ 'Jane Doe' // defaultText
+ );
+ }
+
+## Full Example
+
+ <!DOCTYPE html>
+ <html>
+ <head>
+ <title>Notification Prompt Dialog Example</title>
+
+ <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+ <script type="text/javascript" charset="utf-8">
+
+ // Wait for device API libraries to load
+ //
+ document.addEventListener("deviceready", onDeviceReady, false);
+
+ // device APIs are available
+ //
+ function onDeviceReady() {
+ // Empty
+ }
+
+ // process the promptation dialog result
+ function onPrompt(results) {
+ alert("You selected button number " + results.buttonIndex + " and entered " + results.input1);
+ }
+
+ // Show a custom prompt dialog
+ //
+ function showPrompt() {
+ navigator.notification.prompt(
+ 'Please enter your name', // message
+ onPrompt, // callback to invoke
+ 'Registration', // title
+ ['Ok','Exit'], // buttonLabels
+ 'Jane Doe' // defaultText
+ );
+ }
+
+ </script>
+ </head>
+ <body>
+ <p><a href="#" onclick="showPrompt(); return false;">Show Prompt</a></p>
+ </body>
+ </html>
+
+## Android Quirks
+
+- Android supports a maximum of three buttons, and ignores any more than that.
+
+- On Android 3.0 and later, buttons are displayed in reverse order for devices that use the Holo theme.
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/notification/notification.vibrate.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/notification/notification.vibrate.md b/docs/en/3.3.0/cordova/notification/notification.vibrate.md
new file mode 100644
index 0000000..518fe52
--- /dev/null
+++ b/docs/en/3.3.0/cordova/notification/notification.vibrate.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.
+---
+
+# notification.vibrate
+
+Vibrates the device for the specified amount of time.
+
+ navigator.notification.vibrate(milliseconds)
+
+- __time__: Milliseconds to vibrate the device, where 1000 milliseconds equals 1 second. _(Number)_
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- iOS
+- Windows Phone 7 and 8
+
+## Quick Example
+
+ // Vibrate for 2.5 seconds
+ //
+ navigator.notification.vibrate(2500);
+
+## Full Example
+
+ <!DOCTYPE html>
+ <html>
+ <head>
+ <title>Notification Example</title>
+
+ <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+ <script type="text/javascript" charset="utf-8">
+
+ // Wait for device API libraries to load
+ //
+ document.addEventListener("deviceready", onDeviceReady, false);
+
+ // device APIs are available
+ //
+ function onDeviceReady() {
+ // Empty
+ }
+
+ // Show a custom alert
+ //
+ function showAlert() {
+ navigator.notification.alert(
+ 'You are the winner!', // message
+ 'Game Over', // title
+ 'Done' // buttonName
+ );
+ }
+
+ // Beep three times
+ //
+ function playBeep() {
+ navigator.notification.beep(3);
+ }
+
+ // Vibrate for 2 seconds
+ //
+ function vibrate() {
+ navigator.notification.vibrate(2000);
+ }
+
+ </script>
+ </head>
+ <body>
+ <p><a href="#" onclick="showAlert(); return false;">Show Alert</a></p>
+ <p><a href="#" onclick="playBeep(); return false;">Play Beep</a></p>
+ <p><a href="#" onclick="vibrate(); return false;">Vibrate</a></p>
+ </body>
+ </html>
+
+## iOS Quirks
+
+- __time__: Ignores the specified time and vibrates for a pre-set amount of time.
+
+ navigator.notification.vibrate();
+ navigator.notification.vibrate(2500); // 2500 is ignored
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/splashscreen/splashscreen.hide.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/splashscreen/splashscreen.hide.md b/docs/en/3.3.0/cordova/splashscreen/splashscreen.hide.md
new file mode 100644
index 0000000..ad40ba5
--- /dev/null
+++ b/docs/en/3.3.0/cordova/splashscreen/splashscreen.hide.md
@@ -0,0 +1,83 @@
+---
+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.
+---
+
+# splashscreen.hide
+
+Dismiss the splash screen.
+
+ navigator.splashscreen.hide();
+
+## Description
+
+This method dismisses the application's splash screen.
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- BlackBerry 10
+- iOS
+- Windows Phone 7 and 8
+- Windows 8
+
+## Quick Example
+
+ navigator.splashscreen.hide();
+
+## Full Example
+
+ <!DOCTYPE html>
+ <html>
+ <head>
+ <title>Splashscreen Example</title>
+
+ <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+ <script type="text/javascript" charset="utf-8">
+
+ // Wait for device API libraries to load
+ //
+ document.addEventListener("deviceready", onDeviceReady, false);
+
+ // device APIs are available
+ //
+ function onDeviceReady() {
+ navigator.splashscreen.hide();
+ }
+
+ </script>
+ </head>
+ <body>
+ <h1>Example</h1>
+ </body>
+ </html>
+
+## BlackBerry 10 Quirk
+
+The `config.xml` file's `AutoHideSplashScreen` setting must be
+`false`.
+
+## iOS Quirk
+
+The `config.xml` file's `AutoHideSplashScreen` setting must be
+`false`. To delay hiding the splash screen for two seconds, add a
+timer such as the following in the `deviceready` event handler:
+
+ setTimeout(function() {
+ navigator.splashscreen.hide();
+ }, 2000);
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/splashscreen/splashscreen.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/splashscreen/splashscreen.md b/docs/en/3.3.0/cordova/splashscreen/splashscreen.md
new file mode 100644
index 0000000..2778733
--- /dev/null
+++ b/docs/en/3.3.0/cordova/splashscreen/splashscreen.md
@@ -0,0 +1,68 @@
+---
+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.
+---
+
+# Splashscreen
+
+> Displays and hides the application's splash screen.
+
+## Methods
+
+- splashscreen.show
+- splashscreen.hide
+
+## Accessing the Feature
+
+As of version 3.0, Cordova implements device-level APIs as _plugins_.
+Use the CLI's `plugin` command, described in The Command-Line
+Interface, to add or remove this feature for a project:
+
+ $ cordova plugin add org.apache.cordova.splashscreen
+ $ cordova plugin ls
+ [ 'org.apache.cordova.splashscreen' ]
+ $ cordova plugin rm org.apache.cordova.splashscreen
+
+These commands apply to all targeted platforms, but modify the
+platform-specific configuration settings described below:
+
+* Amazon Fire OS (in `res/xml/config.xml`)
+
+ <feature name="SplashScreen">
+ <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
+ </feature>
+
+* Android (in `res/xml/config.xml`)
+
+ <feature name="SplashScreen">
+ <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
+ </feature>
+
+* BlackBerry 10 (in `www/config.xml`)
+
+ <feature name="SplashScreen" value="SplashScreen" />
+
+* iOS (in the named application directory's `config.xml`)
+
+ <feature name="SplashScreen">
+ <param name="ios-package" value="CDVSplashScreen" />
+ </feature>
+
+Some platforms may support this feature without requiring any special
+configuration. See Platform Support for an overview.
+
+See Icons and Splash Screens for information on how to configures these images.
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/splashscreen/splashscreen.show.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/splashscreen/splashscreen.show.md b/docs/en/3.3.0/cordova/splashscreen/splashscreen.show.md
new file mode 100644
index 0000000..a462ed2
--- /dev/null
+++ b/docs/en/3.3.0/cordova/splashscreen/splashscreen.show.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.
+---
+
+# splashscreen.show
+
+Displays the splash screen.
+
+ navigator.splashscreen.show();
+
+## Description
+
+This method displays the application's splash screen.
+
+## Supported Platforms
+
+- Amazon Fire OS
+- Android
+- iOS
+- Windows Phone 7 and 8
+- Windows 8
+
+## Quick Example
+
+ navigator.splashscreen.show();
+
+## Full Example
+
+ <!DOCTYPE html>
+ <html>
+ <head>
+ <title>Splashscreen Example</title>
+
+ <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
+ <script type="text/javascript" charset="utf-8">
+
+ // Wait for device API libraries to load
+ //
+ document.addEventListener("deviceready", onDeviceReady, false);
+
+ // device APIs are available
+ //
+ function onDeviceReady() {
+ navigator.splashscreen.show();
+ }
+
+ </script>
+ </head>
+ <body>
+ <h1>Example</h1>
+ </body>
+ </html>
+
+Your application can not call `navigator.splashscreen.show()` until
+the app has started and the `deviceready` event has fired. But since
+typically the
+splash screen is meant to be visible before your app has started, that would
+seem to defeat the purpose of the splash screen.
+Providing some configuration in `config.xml` will automatically `show` the
+splash screen immediately after your app launch and before it has fully
+started and received the `deviceready` event. See Icons and Splash Screens
+for more information on doing this configuration. For this reason, it is
+unlikely you need to call `navigator.splashscreen.show()` to make the
+splash screen visible for app startup.
http://git-wip-us.apache.org/repos/asf/cordova-docs/blob/c6219cfc/docs/en/3.3.0/cordova/storage/storage.md
----------------------------------------------------------------------
diff --git a/docs/en/3.3.0/cordova/storage/storage.md b/docs/en/3.3.0/cordova/storage/storage.md
new file mode 100644
index 0000000..f17a6bd
--- /dev/null
+++ b/docs/en/3.3.0/cordova/storage/storage.md
@@ -0,0 +1,70 @@
+---
+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.
+---
+
+# Storage
+
+> An overview of storage options for Cordova.
+
+Several storage APIs are available for Cordova applications.
+See
+[html5rocks](http://www.html5rocks.com/en/features/storage).
+for a more complete overview and examples.
+
+## LocalStorage
+
+Also known as _web storage_, _simple storage_, or by its alternate
+_session storage_ interface, this API provides synchronous key/value
+pair storage, and is available in underlying WebView implementations.
+Refer to [the W3C spec](http://www.w3.org/TR/webstorage/) for details.
+
+__Windows Phone 7 Quirk__: Dot notation is _not_ available, so be sure
+to use `setItem` or `getItem` rather than access keys directly from
+the storage object, as in `window.localStorage.someKey`.
+
+## WebSQL
+
+This API is available in the underlying WebView.
+The [Web SQL Database Specification](http://dev.w3.org/html5/webdatabase/)
+offers more full-featured database tables accessed via SQL queries.
+
+The following platforms support WebSQL:
+
+- Android
+- BlackBerry 10
+- iOS
+- Tizen
+
+## IndexedDB
+
+This API is available in the underlying WebView.
+[Indexed DB](http://www.w3.org/TR/IndexedDB/) offers more features
+than LocalStorage but fewer than WebSQL.
+
+The following platforms support IndexedDB:
+
+- Windows Phone 8
+- BlackBerry 10
+
+## Plugin-Based Options
+
+In addition to the storage APIs listed above, the File API allows you
+to cache data on the local file system. Other
+[Cordova plugins](http://plugins.cordova.io/) provide similar storage
+options.
+