首先要注意的是:從3.3版本以后已經(jīng)把 www/config.xml 移動(dòng)到了根目錄下。
在 config.xml 中定義的東西應(yīng)該適應(yīng)所有平臺(tái)。在 build 工程的是時(shí)候,會(huì)看到“Generating config.xml from defaults for platform "android"”這樣的字樣,他會(huì)生成各個(gè)平臺(tái)的 config.xml。
生成的文件:
生成的 config.xml 當(dāng)然會(huì)根據(jù)平臺(tái)不同加入不同的內(nèi)容。
比如 Android 下就就在 config.xml 添加了以下內(nèi)容:
Xml 代碼
<preference name="loglevel" value="DEBUG" />
<feature name="App">
<param name="android-package" value="org.apache.cordova.App" />
</feature>
config.xml 文件的 Scheme 基于 W3C 的 Widgets 定義。
基本構(gòu)造:
Xml 代碼
<widget>
<name></name>
<preference />
<feature>
<param />
</feature>
<access />
<content />
</widget>
preference:
選項(xiàng)設(shè)置。應(yīng)用運(yùn)行時(shí)的一些參數(shù),根據(jù)平臺(tái)設(shè)置的內(nèi)容不同。
Android 設(shè)置:http://cordova.apache.org/docs/en/3.4.0/guide_platforms_android_config.md.html
iOS 設(shè)置:http://cordova.apache.org/docs/en/3.4.0/guide_platforms_ios_config.md.html
access:
域限制設(shè)置。應(yīng)用中如果讀取其他域中的HTML文件,而該文件中如果使用了 cordova.js,那么他就能訪問(wèn)手機(jī)的本地功能。遵守 W3C Widget Access 規(guī)范。
可以設(shè)置多個(gè):
也可以使用通配符:
默認(rèn)可以訪問(wèn)任何域。
feature:
應(yīng)用中使用了哪些 Native 功能,Cordova 在運(yùn)行時(shí)會(huì)掃描 feature 屬性就知道哪些 Plugin 是有效的。在執(zhí)行 cordova plugin add 的時(shí)候會(huì)自動(dòng)添加 feature。 比如:
引用
cordova plugin add org.apache.cordova.camera
cordova build
platforms/android/res/xml/config.xml 中就會(huì)多了以下內(nèi)容:
Xml 代碼
<feature name="Camera">
<param name="android-package" value="org.apache.cordova.camera.CameraLauncher" />
</feature>
content:
應(yīng)用的入口文件。默認(rèn)是 index.html。
其他:
widget 的 id 屬性,Android 的話就是應(yīng)用的 package 名,iOS 是 AppID。
widget 的 version 屬性就是應(yīng)用的版本號(hào)(android:versionName)(3.5版本中可以 android-versionCode="10")。
name 標(biāo)簽就是應(yīng)用的名字(把文件保存為 UTF-8支持中文)。
http://wiki.jikexueyuan.com/project/cordova-3.x-primer-foundation/images/5.1.png" alt="picture5.1" />
***在"cordova create"的時(shí)候,App 名不能全部是分英文字母,比如,"我的應(yīng)用"。必須包含英文字母,因?yàn)?CordovaCLI 要用來(lái)生成 MainActivity 的 Class 名.
***這個(gè)問(wèn)題最新版已經(jīng) Fixed。CB-6511 Fixes build for Android when app name contains unicode characters.
設(shè)置版本
iOS
Version (CFBundleShortVersionString)
Build (CFBundleVersion)
Android
android:versionName
android:versionCode
應(yīng)用名的國(guó)際化
iOS
CFBundleDisplayName = "Sample App Name";
Android
strings.xml app_name = "Sample App Name";