The config.xml file
The config.xml file is a platform-agnostic configuration file. As mentioned earlier, this file consists of all the information needed by Cordova to convert the code in the www folder to the platform-specific installer.
The setting up of the config.xml file is based on W3C's packaged web apps (widgets) specification (http://www.w3.org/TR/widgets/), and it is extended to specify core Cordova API features, plugins, and platform-specific settings. There are two types of configurations that we can add to this file. One is global, that is, common to all devices, and the other is specific to the platform.
If we open config.xml, the first tag we encounter is the XML root tag. Next, we can see the widget tag:
<widget id="app.example.one" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
The id specified previously is the reverse domain name of our app, which we provided while scaffolding. Other specifications are defined inside the widget tag as its children. The children tags include the app name (which gets displayed below the app icon when installed on the device), app description, and author details.
It also consists of the configuration that needs to be adhered to while converting code in the src folder to a native installer.
The content tag defines the starting page of the application.
The access tag defines the URLs that are allowed to load in the app. By default, it loads all the URLs.
The preference tag sets the various options as name value pairs. For instance, DisallowOverscroll describes weather there should be any visual feedback when the user scrolls past the beginning or end of the document.
You can read more about platform-specific configurations at the following links:
- Android: http://docs.phonegap.com/en/edge/guide_platforms_android_config.md.html#Android%20Configuration
- iOS: http://docs.phonegap.com/en/edge/guide_platforms_ios_config.md.html#iOS%20Configuration
The importance of platform-specific configurations and global configurations is the same. You can read more about global configuration at http://docs.phonegap.com/en/edge/config_ref_index.md.html#The%20config.xml%20File.