Cordova 3.x 基础(5) -- 配置文件config.xml

时间:2022-01-10 20:10:36

原文:http://rensanning.iteye.com/blog/2019331

首先要注意的是:从3.3版本以后已经把www/config.xml移动到了根目录下。 

在config.xml中定义的东西应该适应所有平台。在build工程的是时候,会看到“Generating config.xml from defaults for platform "android"”这样的字样,他会生成各个平台的config.xml。 

生成的文件: 

  • Android:MyProject/platforms/android/res/xml/config.xml.
  • iOS:MyProject/platforms/ios/MyProject/config.xml.


生成的config.xml当然会根据平台不同加入不同的内容。 
比如Android下就就在config.xml添加了以下内容: 

Xml代码   Cordova 3.x 基础(5) -- 配置文件config.xml
  1. <preference name="loglevel" value="DEBUG" />  
  2. <feature name="App">  
  3.     <param name="android-package" value="org.apache.cordova.App" />  
  4. </feature>  



config.xml文件的Scheme基于W3C的Widgets定义。 
基本构造: 

Xml代码   Cordova 3.x 基础(5) -- 配置文件config.xml
  1. <widget>  
  2.   <name></name>  
  3.   <preference />  
  4.   <feature>  
  5.     <param />  
  6.   </feature>  
  7.   <access />  
  8.   <content />  
  9. </widget>  



preference: 
选项设置。应用运行时的一些参数,根据平台设置的内容不同。 
Android设置:http://cordova.apache.org/docs/en/3.4.0/guide_platforms_android_config.md.html 
iOS设置:http://cordova.apache.org/docs/en/3.4.0/guide_platforms_ios_config.md.html 

access: 
域限制设置。应用中如果读取其他域中的HTML文件,而该文件中如果使用了cordova.js,那么他就能访问手机的本地功能。遵守W3C Widget Access规范。 
可以设置多个: 
<access origin="http://example.com" /> 
<access origin="http://foobar.example.com" /> 
也可以使用通配符: 
<access origin="http://*.example.com" /> 
默认可以访问任何域。 
<access origin="*" /> 

feature: 
应用中使用了哪些Native功能,Cordova在运行时会扫描feature属性就知道哪些Plugin是有效的。在执行cordova plugin add的时候会自动添加feature。 
比如: 

引用
cordova plugin add org.apache.cordova.camera 
cordova build


platforms/android/res/xml/config.xml中就会多了以下内容: 

Xml代码   Cordova 3.x 基础(5) -- 配置文件config.xml
  1. <feature name="Camera">  
  2.     <param name="android-package" value="org.apache.cordova.camera.CameraLauncher" />  
  3. </feature>  



content: 
应用的入口文件。默认是index.html。 

其他: 
widget的id属性,Android的话就是应用的package名,iOS是AppID。 
widget的version属性就是应用的版本号(android:versionName)(3.5版本中可以android-versionCode="10")。 
name标签就是应用的名字(把文件保存为UTF-8支持中文)。 
Cordova 3.x 基础(5) -- 配置文件config.xml 

***在"cordova create"的时候,App名不能全部是分英文字母,比如,"我的应用"。必须包含英文字母,因为CordovaCLI要用来生成MainActivity的Class名. 

***这个问题最新版已经Fixed。CB-6511 Fixes build for Android when app name contains unicode characters. 


设置版本 
iOS 
Version (CFBundleShortVersionString) 
Build (CFBundleVersion) 
Android 
android:versionName 
android:versionCode 

应用名的国际化 
iOS 
CFBundleDisplayName = "Sample App Name"; 
Android 
strings.xml app_name = "Sample App Name";