The config.xml File

Many aspects of an app's behavior can be controlled with a global
configuration file, config.xml. This
platform-agnostic XML file is arranged based on the W3C's Packaged
Web Apps (Widgets) specification, and
extended to specify core Cordova API features, plugins, and
platform-specific settings.

For projects created with the Cordova CLI (described in The
Command-Line Interface), this file can be found in the top-level
directory:

app/config.xml

Note that before version 3.3.1-0.2.0, the file existed at app/www/config.xml,
and that having it here is still supported.

When using the CLI to build a project, versions of this file are
passively copied into various platforms/ subdirectories, for example:

The following configuration elements appear in the top-level
config.xml file, and are supported across all supported Cordova
platforms:

The <widget> element's id attribute provides the app's
reverse-domain identifier, and the version its full version number
expressed in major/minor/patch notation.

The <name> element specifies the app's formal name, as it appears
on the device's home screen and within app-store interfaces.

The <description> and <author> elements specify metadata and
contact information that may appear within app-store listings.

The optional <content> element defines the app's starting
page in the top-level web assets directory. The default value is
index.html, which customarily appears in a project's top-level
www directory.

<access> elements define the set of external domains the app is
allowed to communicate with. The default value shown above allows
it to access any server. See the Domain Whitelist Guide for details.

The <preference> tag sets various options as pairs of
name/value attributes. Each preference's name is
case-insensitive. Many preferences are unique to specific
platforms, as listed at the top of this page. The following sections
detail preferences that apply to more than one platform.

Global Preferences

The following global preferences apply to all platforms:

Fullscreen allows you to hide the status bar at the top of the
screen. The default value is false. Example:

<preference name="Fullscreen" value="true" />

Orientation allows you to lock orientation and prevent the
interface from rotating in response to changes in orientation.
Possible values are default, landscape, or portrait. Example:

<preference name="Orientation" value="landscape" />

NOTE: The default value means both landscape and portrait
orientations are enabled. If you want to use each platform's
default settings (usually portrait-only), leave this tag out of the
config.xml file.

Multi-Platform Preferences

The following preferences apply to more than one platform, but not to
all of them:

DisallowOverscroll (boolean, defaults to false): set to true
if you don't want the interface to display any feedback when users
scroll past the beginning or end of content.

<preference name="DisallowOverscroll" value="true"/>

Applies to Android and iOS. On iOS, overscroll gestures cause
content to bounce back to its original position. On Android, they
produce a more subtle glowing effect along the top or bottom edge of
the content.

BackgroundColor: Set the app's background color. Supports a
four-byte hex value, with the first byte representing the alpha
channel, and standard RGB values for the following three bytes. This
example specifies blue:

<preference name="BackgroundColor" value="0xff0000ff"/>

Applies to Android and BlackBerry. Overrides CSS otherwise available
across all platforms, for example: body{background-color:blue}.

HideKeyboardFormAccessoryBar (boolean, defaults to false): set
to true to hide the additional toolbar that appears above the
keyboard, helping users navigate from one form input to another.

<preference name="HideKeyboardFormAccessoryBar" value="true"/>

Applies to iOS and BlackBerry.

The feature Element

If you use the CLI to build applications, you use the plugin command
to enable device APIs. This does not modify the top-level config.xml
file, so the <feature> element does not apply to your workflow. If
you work directly in an SDK and using the platform-specific
config.xml file as source, you use the <feature> tag to enable
device-level APIs and external plugins. They often appear with custom values in
platform-specific config.xml files. For example, here is how to specify the
Device API for Android projects:

See the API Reference for details on how to specify each feature. See
the Plugin Development Guide for more information on plugins.

The platform Element

When using the CLI to build applications, it is sometimes necessary to specify
preferences or other elements specific to a particular platform. Use the <platform>
element to specify configuration that should only appear in a single platform-specific
config.xml file. For example, here is how to specify that only android should use the
Fullscreen preference: