You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by Apache Wiki <wi...@apache.org> on 2014/06/03 18:54:33 UTC
[Cordova Wiki] Update of "config/cordova.xml" by jbondc
Dear Wiki user,
You have subscribed to a wiki page or wiki category on "Cordova Wiki" for change notification.
The "config/cordova.xml" page has been changed by jbondc:
https://wiki.apache.org/cordova/config/cordova.xml?action=diff&rev1=13&rev2=14
- == Cordova configs ==
+ ...
- * {$PLATFORM_RUNTIME} is either just "android" (default runtime) or "android.chromeview" (alternative runtime)
- * {$CLI_PROJECT} is the root the cordova cli
- * {$WWW_DIR} is the path to a platform's web app directory
-
- === Hybrid: {$CLI_PROJECT}/config.xml ===
-
- {{{#!xml
- <app>
- <!-- default/global configuration of application -->
- <name>Some app</name>
- <version>1.0.1</version>
- <icons>
- <img src="path/app.png" width="58" height="58" />
- <img src="path/app.png" width="96" height="96" />
- </icons>
- <splash>
- <img src="path/splash.png" width="1024" height="768" />
- </splash>
-
- <!-- platform specific config and/or overrides -->
- <platform name="ios">
- <version build="2">1.0.1</version>
- <icons>
- <img src="path/app.png" width="120" height="120" />
- </icons>
- </platform>
-
- <platform name="android">
- <version release="1.0.0" .../>
- <icon/>
-
- <!-- runtime specific config and/or overrides -->
- <runtime name="chromeview">
- <name>Some app (beta!)</name>
- <custom />
- </runtime>
-
- </platform>
-
- <!-- Particular cordova/engine config -->
- <view name="cordova">
- <content src="index.html" />
- <access origin="*" />
- </view>
-
- </app>
- }}}
-
- Could keep 'config.xml' and create "cdv" namespace:
-
- http://phonegap.com/blog/2014/01/30/customizing-your-android-manifest-and-ios-property-list-on-phonegap-build/
-
- XML namespacing is great in theory, never adopted well by web developers.
-
- === Install meta: {$CLI_PROJECT}/platforms/{$PLATFORM_RUNTIME}/cordova/project.json ===
-
- * All required metadata for a native cordova project: current version in the project, ...?
-
- * All required metadata about installed plugins for a specific platform.
- (needs to convert all necessary plugin.xml information into a json format)
-
- * Need enough info to uninstall & re-install a plugin properly (list of files installed + version number).
-
- === Runtime meta: {$CLI_PROJECT}/platforms/{$PLATFORM_RUNTIME}/{$WWW_DIR}/wat.json ===
-
- "WAT" --> "Web app technology? Existing configs:
- * http://dev.w3.org/2006/waf/widgets/
- * https://developer.mozilla.org/en-US/Apps/Developing/Manifest
- * http://www.w3.org/TR/2013/WD-appmanifest-20131217/
-
- Typically this would be loaded by the WebView / browser.
-
- {{{
- {
- "name": "Some app!",
- "version": "1.0.1",
- "meta": { /* meta-data (auto-generated by cli/plugman)
-
- "cordova": {
- "plugins": [], /* list of plugins installed */
- "modules": [], /* list of modules to load dynamically (if needed) */
- "config" : {} /* configuration from config.xml or config.json */
- }
- }
- }
- }}}
-
- === Defaults: {$CLI_PROJECT}/platforms/{$PLATFORM_RUNTIME}/cordova/project/defaults/ ===
-
- Store all default configuration & platform files here
- e.g.
- * {$CLI_PROJECT}/platforms/{$PLATFORM_RUNTIME}/cordova/project/defaults/config.xml
- * {$CLI_PROJECT}/platforms/{$PLATFORM_RUNTIME}/cordova/project/defaults/cordova.js
- * ?
-
- === Plugman config: {$PLUGMAN_PROJECT}/cordova/config.xml ===
-
- If using cli, it must update {$PLUGMAN_PROJECT}/cordova/config.xml
-
- === NOTES ===
-
- Some objectives:
- * cli should write plugin information to the same place as 'plugman' (cordova project)
- offers an aggregate view over all installed platform projects.
-
- * must be able to safely rollback changes to a previous change.
- project.transaction();
- project.rollback();
- project.commit();
-
- * must be able to add a different plugin version to a specific native platform
-
- {{{
- e.g. plugin list
-
- org.apache.cordova.file 0.2.5
- org.apache.cordova.camera 0.2.6 (ios, windows8)
- org.apache.cordova.camera 0.2.5 (android)
- }}}
-
- * need a migration path to convert existing 3.x project
- And think about easy upgrade process:
- {{{
- cordova info
- cordova upgrade [platform list]
- }}}
-
- === XML vs. JSON as config ===
-
- * User perspective
- Which format is better for user?
- Web devs likely prefer JSON. Native devs likely prefer XML.
-
- * Cordova perspective
- A JSON config means the code in cordova-cli & cordova-plugman is easier to read.
- No parsing involved so much faster.
- Could convert XML to 1-1 mapping in JSON to get benefit of having no XML logic in the code.
-
- === Drop config.xml widget spec ===
-
- * Andrew
- * Braden
- * Jonathan
-
- === Preference for JSON only as user config ===
- * Braden
- * Josh
-
- === Preference for XML only as user config ===
- * Brian
- * Jonathan
-
- === Preference for XML & JSON both supported as user config ===
- * Jonathan
-
- === Icons ===
-
- An alternative to 'grouping' <icons> would be to reference images:
- {{{
- <icons>
- <img src="path/app.png" width="58" height="58" />
- <img src="path/app.png" width="96" height="96" />
- </icons>
- <splash>
- <img src="path/splash.png" width="1024" height="768" />
- </splash>
- }}}
-
- Becomes:
- {{{
- <img src="path/app.png" ref="icons" width="58" height="58" />
- <img src="path/app.png" ref="icons" width="96" height="96" />
-
- <img src="path/splash.png" ref="splash" width="1024" height="768" />
-
-
- <img src="path/splash.png" ref="3d-something" width="1024" height="768" />
-
- ...
- }}}
-