Github user rakatyal commented on a diff in the pull request: https://github.com/apache/cordova-docs/pull/463#discussion_r51643532 --- Diff: www/docs/en/dev/config_ref/index.md --- @@ -39,222 +39,357 @@ 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: +passively copied into various `platforms/` subdirectories. +For example: app/platforms/ios/AppName/config.xml app/platforms/blackberry10/www/config.xml app/platforms/android/res/xml/config.xml -This section details global and cross-platform configuration options. -See the following sections for platform-specific options: - -- [iOS Configuration](../guide/platforms/ios/config.html) -- [Android Configuration](../guide/platforms/android/config.html) -- [BlackBerry 10 Configuration](../guide/platforms/blackberry10/config.html) - In addition to the various configuration options detailed below, you can also configure an application's core set of images for each target platform. See [Icons and Splash Screens](images.html) for more information. -## Core Configuration Elements - -This example shows the default `config.xml` generated by the CLI's -`create` command, described in [The Command-Line Interface](../guide/cli/index.html): - - <widget id="com.example.hello" version="0.0.1"> - <name>HelloWorld</name> - <description> - A sample Apache Cordova application that responds to the deviceready event. - </description> - <author email="d...@callback.apache.org" href="http://cordova.io"> - Apache Cordova Team - </author> - <content src="index.html" /> - <access origin="*" /> - </widget> +# widget + Root element of the config.xml document. + + Attributes(type) | Description + ---------------- | ------------ + id(string) | *Required* <br/> Specifies the app's reverse-domain identifier, and the `version` its full version number expressed in major/minor/patch notation. + version(string) | *Required* <br/> Full version number expressed in major/minor/patch notation. + versionCode(string) | **Platforms supported: Android** <br/> Alternative version for Android. + CFBundleVersion(string) | **Platforms supported: iOS** <br/> Alternative version for iOS. + packageVersion(string) | **Platforms supported: Windows** <br/> Alternative version for Windows. + packageName(string) | *Default: Cordova.Example* <br/> **Platforms supported: Windows** <br/> Package name for Windows. + xmlns(string) | *Required* <br/> Namespace for the config.xml document. + xmlns:cdv(string) | *Required* <br/> Namespace prefix. + + Examples: -The following configuration elements appear in the top-level -`config.xml` file, and are supported across all supported Cordova -platforms: + <widget id="io.cordova.hellocordova" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0"> + </widget> -- 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. + <!-- Android --> + <widget versionCode="0.1.3"> + </widget> - The widget tag can also have attributes that specify alternative versions, - namely `versionCode` for Android, `CFBundleVersion` for iOS, and - `packageVersion` for Windows. See the Additional Versioning section below - for details. + <!-- iOS --> + <widget CFBundleVersion="0.1.3"> + </widget> -- The `<name>` element specifies the app's formal name, as it appears - on the device's home screen and within app-store interfaces. + <!-- Windows --> + <widget packageVersion="0.1.3"> + </widget> -- 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. +## name + Specifies the app's formal name, as it appears on the device's home screen and within app-store interfaces. -- `<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](../guide/appdev/whitelist/index.html) for details. + Examples: -- 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. + <widget ...> + <name>HelloCordova</name> + </widget> + +## description + Specifies metadata that may appear within app-store listings. -### Additional Versioning + Examples: + + <widget ...> + <description>A sample Apache Cordova application</description> + </widget> -Android, iOS, and Windows support a second version string (or number) in -addition to the one visible in app stores: + +## author + Specifies contact information that may appear within app-store lisitngs. + + Attributes(type) | Description + ----------------- | ------------ + email(string) | *Required* <br/> Email of the author. + href(string) | *Required* <br/> Website of the author. -- [versionCode](http://developer.android.com/tools/publishing/versioning.html) - for Android -- [CFBundleVersion](http://stackoverflow.com/questions/4933093/cfbundleversion-in-the-info-plist-upload-error) - for iOS -- [packageVersion](https://msdn.microsoft.com/en-us/library/windows/apps/br211441.aspx) - for Windows + Examples: -Below is an example that explicitly sets these properties: + <widget ...> + <author email="dev@cordova.apache.org" href="http://cordova.io"></author> + </widget> - <widget id="io.cordova.hellocordova" - version="0.0.1" - android-versionCode="7" - ios-CFBundleVersion="3.3.3" - windows-packageVersion="1.0.1.2"> + +## content + Optional. + 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. + + Attributes(type) | Description + ----------------- | ------------ + src(string) | *Required* <br/> 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. + + Examples: + + <widget ...> + <content src="startPage.html"></content> + </widget> -If alternative version is not specified, the following -defaults will be used: + +## access + Defines 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](../guide/appdev/whitelist/index.html) for details. - // assuming version = MAJOR.MINOR.PATCH-whatever - versionCode = PATCH + MINOR * 100 + MAJOR * 10000 - CFBundleVersion = "MAJOR.MINOR.PATCH" - packageVersion = "MAJOR.MINOR.PATCH.0" + Attributes(type) | Description + ----------------- | ------------ + origin(string) | *Required* <br/> Defines 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](../guide/appdev/whitelist/index.html) for details. -## Global Preferences + Examples: -The following global preferences apply to all platforms: + <widget ...> + <access origin="*"></content> + </widget> + + <widget ...> + <access origin="http://google.com"></content> + </widget> + + +## allow-navigation + Controls which URLs the WebView itself can be navigated to. Applies to top-level navigations only. + + Attributes(type) | Description + ----------------- | ------------ + href(string) | *Required* <br/> Defines the set of external domains the WebView is allowed to navigate to. + See the cordova-plugin-whitelist [cordova-plugin-whitelist](https://github.com/apache/cordova-plugin-whitelist#navigation-whitelist) for details. + + Examples: + + <!-- Allow links to example.com --> + <allow-navigation href="http://example.com/*" /> + + <!-- Wildcards are allowed for the protocol, as a prefix to the host, or as a suffix to the path --> + <allow-navigation href="*://*.example.com/*" /> + +## allow-intent + Controls which URLs the app is allowed to ask the system to open. By default, no external URLs are allowed. + + Attributes(type) | Description + ----------------- | ------------ + href(string) | *Required* <br/> Defines which URLs the app is allowed to ask the system to open. + See the cordova-plugin-whitelist [cordova-plugin-whitelist](https://github.com/apache/cordova-plugin-whitelist#intent-whitelist) for details. + + Examples: + + <allow-intent href="http://*/*" /> + <allow-intent href="https://*/*" /> + <allow-intent href="tel:*" /> + <allow-intent href="sms:*" /> + +## engine + Specifies what platform to restore during a prepare. For more details, see the Platforms & Plugins Version Management. + + Attributes(type) | Description + ----------------- | ------------ + name(string) | *Required* <br/> Name of the platform to be restored + spec(string) | *Required* <br/> Version of the platform to be restored + + Examples: + + <engine name="android" spec="^4.0.0" /> + +## preference + Sets various optinos as pairs of name/value attributes. Each preference's name is case-insensitive. Many preferences are unique to specific platforms, + and will be indicated as such. + + Attributes(type) | Description + ----------------- | ------------ + AllowInlineMediaPlayback(boolean) | *Default: false* <br/> **Platforms supported: iOS** <br/> Set to true to allow HTML5 media playback to appear inline within the screen layout, using browser-supplied controls rather than native controls. For this to work, add the webkit-playsinline attribute to any ```<video>``` elements. + AndroidLaunchMode(string) | *Default: singleTop* <br/> Allowed values: standard, singleTop, singleTask, singleInstance <br/> **Platforms supported: Android** <br/> Sets the Activity android:launchMode attribute. This changes what happens when the app is launched from app icon or intent and is already running. + AppendUserAgent(string) | **Platforms supported: Android** <br/> If set, the value will append to the end of old UserAgent of webview. When using with OverrideUserAgent, this value will be ignored. + AppendUserAgent(string) | **Platforms supported: iOS** <br/> If set, the value will append to the end of old UserAgent of webview. When using with OverrideUserAgent, this value will be ignored. + BackgroundColor(string) | **Platforms supported: Android, BlackBerry** <br/> Supports a four-byte hex value, with the first byte representing the alpha channel, and standard RGB values for the following three bytes. + BackupWebStorage(string) | *Default: cloud* <br/> Allowed values: none, local, cloud. <br/> **Platforms supported: iOS** <br/> Set to cloud to allow web storage data to backup via iCloud. Set to local to allow only local backups via iTunes sync. Set to none prevent web storage backups. + ChildBrowser(string) | *Default: enable* <br/> **Platforms supported: BlackBerry** <br/> Disables child browser windows. By default, apps launch a secondary browser window to display resources accessed via window.open() or by specifying a _blank anchor target. Specify disable to override this default behavior. + CordovaWebViewEngine(string) | *Default: CDVUIWebViewEngine* <br/> **Platforms supported: iOS** <br/> This sets the WebView engine plugin to be used to render the host app. The plugin must conform to the CDVWebViewEngineProtocol protocol. The 'value' here should match the 'feature' name of the WebView engine plugin that is installed. This preference usually would be set by the WebView engine plugin that is installed, automatically. + DefaultVolumeStream(string) | *Default: default* <br/> **Platforms supported: Android**<br/> Added in cordova-android 3.7.0, This preference sets which volume the hardware volume buttons link to. By default this is "call" for phones and "media" for tablets. Set this to "media" to have your app's volume buttons always change the media volume. Note that when using Cordova's media plugin, the volume buttons will dynamically change to controlling the media volume when any Media objects are active. + DisallowOverscroll(boolean) | *Default: false* <br/> **Platforms supported: iOS, Android** <br/> Set to **true** if you don't want the interface to display any feedback when users scroll past the beginning or end of content. 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. <br/> + EnableViewportScale(boolean) | *Default: false* <br/> **Platforms supported: iOS** <br/> Set to true to allow a viewport meta tag to either disable or restrict the range of user scaling, which is enabled by default. Place a viewport such as the following in the HTML to disable scaling and fit content flexibly within the rendering WebView: <br/> ```<meta name='viewport' content='width=device-width, initial-scale=1, user-scalable=no' />``` + ErrorUrl(URL) | *Default: null* <br/> **Platforms supported: Android** <br/> If set, will display the referenced page upon an error in the application instead of a dialog with the title "Application Error". + ErrorUrl(string) | **Platforms supported: iOS** <br/> If set, will display the referenced local page upon an error in the application. + FullScreen(boolean) | *Default: false* <br/> Allows you to hide the status bar at the top of the screen. + GapBetweenPages(float) | *Default: 0* <br/> **Platforms supported: iOS** <br/> The size of the gap, in points, between pages. + HideKeyboardFormAccessoryBar(boolean) | *Default: false* <br/> **Platforms supported: BlackBerry** <br/> set to true to hide the additional toolbar that appears above the keyboard, helping users navigate from one form input to another. + InAppBrowserStorageEnabled (boolean) | *Default: true* <br/> **Platforms supported: Android** <br/> Controls whether pages opened within an InAppBrowser can access the same localStorage and WebSQL storage as pages opened with the default browser. + KeepRunning(boolean) | *Default: true* <br/> **Platforms supported: Android** <br/> Determines whether the application stays running in the background even after a [pause](../../../cordova/events/events.pause.html) event fires. Setting this to false does not kill the app after a [pause](../../../cordova/events/events.pause.html) event, but simply halts execution of code within the cordova webview while the app is in the background. + KeyboardDisplayRequiresUserAction(boolean) | *Default: true* <br/> **Platforms supported: iOS** <br/> Set to false to allow the keyboard to appear when calling focus() on form inputs. + LoadUrlTimeoutValue(number in milliseconds) | *Default: 20000, 20 seconds* <br/> **Platforms supported: Android** <br/> hen loading a page, the amount of time to wait before throwing a timeout error. + LoadingDialog(string) | *Default: null* <br/> **Platforms supported: Android** <br/> If set, displays a dialog with the specified title and message, and a spinner, when loading the first page of an application. The title and message are separated by a comma in this value string, and that comma is removed before the dialog is displayed. + LogLevel(string) | *Default: ERROR* <br/> Allowed values: ERROR, WARN, INFO, DEBUG, VERBOSE <br/> **Platforms supported: Android** <br/> Sets the minimum log level through which log messages from your application will be filtered. + MediaPlaybackAllowsAirPlay(boolean) | *Default: true* <br/> **Platforms supported: iOS** <br/> Set to false to prevent Air Play from being used in this view. Available in default UIWebView and WKWebView. + MediaPlaybackRequiresUserAction(boolean) | *Default: false* <br/> **Platforms supported: iOS** <br/> Set to true to prevent HTML5 videos or audios from playing automatically with the autoplay attribute or via JavaScript. + Min/Max UAP(Regex) | Allowed values: **/(Microsoft.+? | Windows.+?)-(MinVersion | MaxVersionTested)/i** <br/> **Platforms supported: Windows** <br/> Sets the min/max UAP versions for Windows. If nothing is specified, Windows.Universal at version 10.0.10240.0 will be used. + Orientation(string) | *Default: default* <br/> Allowed values: default, landscape, portait <br/> Allows you to lock orientation and prevent the interface from rotating in response to changes in orientation. <br/> **NOTE:** The default value means Cordova will strip the orientation preference entry from the platform's manifest/configuration file allowing the platform to fallback to its default behavior. For iOS, to specify both portrait & landscape mode you would use the platform specific value 'all'. + OverrideUserAgent(string) | **Platforms supported: Android** <br/> If set, the value will replace the old UserAgent of webview. It is helpful to identify the request from app/browser when requesting remote pages. Use with caution, this may causes compitiable issue with web servers. For most cases, use AppendUserAgent instead. + OverrideUserAgent(string) | **Platforms supported: iOS** <br/> If set, the value will replace the old UserAgent of webview. It is helpful to identify the request from app/browser when requesting remote pages. Use with caution, this may causes compitiable issue with web servers. For most cases, use AppendUserAgent instead. --- End diff -- Repeated.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org For additional commands, e-mail: dev-h...@cordova.apache.org