cordova Config.xml 详解(搬砖cordova官网)

这是’白菜‘在学习cordova过程中,学习的备份,希望对正在看这篇文章的你来说有用。(PS:所谓 ‘白菜’,就是笔者了_)并且这篇文章来自cordova 官网讲解Config.xml的文章,如若觉得看不明白,且英语过关的同学请移步config.xml,好了,废话不多说,进入主题。

config.xml

config.xml的是控制cordova应用程序的行为的许多方面的全局配置文件。这个平台无关的XML文件是基于W3C的打包Web应用程序(窗口小部件)规范的安排,并扩展到指定的核心cordovaAPI功能,插件和特定于平台的设置。
在cordovaCLI(在命令行界面中所述)创建的项目,这个文件可以在顶级目录中找到:

  app/config.xml

需要注意的是3.3.1-0.2.0版本之前,该文件存在于app/www/ config.xml中,而且这里有它仍然支持。
当使用CLI来建一个项目,该文件版本进行被动复制到不同的平台子目录。 例如:

app/platforms/ios/AppName/config.xml
app/platforms/blackberry10/www/config.xml 
app/platforms/android/res/xml/config.xml

除了下文详述的各种配置选项,还可以配置一个应用程序的核心组用于每个目标平台的图像。更多信息请参见自定义图标的主题。

widget

config.xml文件文档的根元素。

属性(类型) 描述
id(string) 需要 指定应用程序的反向域标识符和版本的主/次/补丁符号表示其完整版本号。
version(string) 需要 在主要/次要/补丁符号表示的完整版本号。
versionCode(string) 需要 另一版本为Android。有关详细信息,请参阅的Android版本
ios-CFBundleVersion(string) 替代的iOS版。有关详细信息,请查看iOS版本。
osx-CFBundleVersion(string) OS X 另一版本的OS X.有关详细信息,请参阅OS X版本。
packageVersion(string) Windows 另一版本的Windows。有关详细信息,请参阅Windows版本
packageName(string) 默认值:Cordova.Example Windows 包名称为Windows。
xmlns(string) 需要 命名空间中的config.xml文件。
xmlns:cdv(string) 需要 命名空间前缀。

例子:

<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>
<!-- Android -->
<widget versionCode="0.1.3"></widget>
<!-- iOS -->
<widget ios-CFBundleVersion="0.1.3"></widget>
<!-- Windows -->
<widget packageVersion="0.1.3"></widget>
<!-- OS X -->
<widget osx-CFBundleVersion="0.1.3"></widget>

name

指定应用程序的正式名称,因为它出现在设备的主屏幕上的app-store界面内。
例子:

<widget ...>    
  <name>HelloCordova</name>
</widget>

description

指定可在应用商店上市出现的元数据。
例子:

<widget ...> 
   <description>A sample Apache Cordova application</description>
</widget>

author

指定可在应用商店上市出现的联系人信息。

属性(类型) 描述
email(string) Required 笔者的电子邮件
href(string) Required 笔者的网站.

例子:

<widget ...> 
    <author email="dev@cordova.apache.org" href="http://cordova.io"></author>
</widget>

content

定义了顶级的app目录中的应用程序的起始页面。默认值是index.html的,这习惯出现在项目的顶级www目录

属性(类型) 描述
src(string) Required 定义了顶的app目录中的应用程序的起始页面。默认值是的index.html

出现在项目的顶级www目录。
例子:

 <widget ...>    
    <content src="startPage.html"></content>
  </widget>  

access

定义外部域的应用程序允许与沟通的集中。上面显示的默认值允许它访问任何服务器。看到域白名单指南。

属性(类型) 描述
origin(string Required Defines the set of external domains the app is allowed to communicate with

上面显示的默认值允许它访问任何服务器。看到域白名单指南。
Examples:

<widget ...>    
  <access origin="*"></content>
</widget>

<widget ...>    
    <access origin="http://google.com"></content>
</widget>

allow-navigation

该URL的webView控件本身可以浏览到。仅适用于顶级导航。

属性(类型) 描述
href(string) Required 定义组的WebView允许导航到外部域的

例子:

<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />

engine

指定什么平台在准备还原。有关详细信息,请参阅平台和插件的版本管理。

属性(类型) 描述
name(string) Required 要恢复的平台的名称
spec(string) Required 要恢复的平台版本
<engine name="android" spec="^4.0.0" />

preference

这个标记的详细属性我就不再赘述了,详情移步文章首段的链接。
例子

<!-- iOS only preferences -->   
<preference name="EnableViewportScale" value="true"/> 
<preference name="MediaPlaybackAllowsAirPlay" value="false"/>    
<preference name="MediaPlaybackRequiresUserAction" value="true"/>
<preference name="AllowInlineMediaPlayback" value="true"/>
<preference name="BackupWebStorage" value="local"/>
<preference name="TopActivityIndicator" value="white"/>
<preference name="SuppressesIncrementalRendering" value="true"/>
.
.
.

param

用来指定什么某些插件参数,如:什么包检索来自插件代码,并确定是否插件代码是网页视图的初始化期间进行初始化。

属性(类型) 描述
name(string) Required Allowed values: android-package, ios-package, osx-package, onload. iOS OS X Android 'ios-package', 'osx-package' and 'android-package' are used to specify the name of the package (as specified by the 'value' attribute) to be used to initialize the plugin code, while 'onload' is used to specify whether the corresponding plugin (as specified in the 'value' attribute) is to be instantiated when the controller is initialized.
value(string or boolean) Required iOS OS X Android Specifies the name of the package to be used to initialize the plugin code (when the 'name' attribute is android-package, ios-package or osx-package), specifies the name of the plugin to be loaded during controller initialization (when 'name' attribute is set to 'onload').

Examples:

<!-- Here is how to specify the Device API for Android projects -->
<feature name="Device">    
  <param name="android-package" value="org.apache.cordova.device.Device" />
</feature>
<!-- Here's how the element appears for iOS projects -->
<feature name="Device">   
   <param name="ios-package" value="CDVDevice" />    
   <param name="onload" value="true" />
</feature>
<!-- Here's how the element appears for OS X projects -->
<feature name="Device">    
  <param name="osx-package" value="CDVDevice" />  
  <param name="onload" value="true" />
</feature>

platform

当使用CLI来构建应用程序,有时需要以指定特定于特定的平台的偏好或其他元素。使用元素来指定应该只出现在一个 platform-specific -config.xml文件中的配置。

属性(类型) 描述
name(string) Required The platform whose preferences are being defined.

Examples:

<platform name="android">  
    <preference name="Fullscreen" value="true" />  
</platform>

hook

表示将由cordova当某些行为发生时被调用自定义脚本(例如,插件添加或平台准备逻辑后调用)。当你需要扩展默认科尔多瓦的功能,这非常有用。见 Hooks Guide获取更多信息。

属性(类型) 描述
type(string) Required 指定在此期间,自定义脚本被调用的动作.
src(string) Required 指定脚本的位置时,一个特定的动作发生时被调用。

Examples:

<hook type="after_plugin_install" src="scripts/afterPluginInstall.js" />

Sample config.xml

<?xml version='1.0' encoding='utf-8'?>
<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">   
   <name>HelloCordova</name>    
    <description>        
        A sample Apache Cordova application that responds to the deviceready event.   
    </description>    
    <author email="dev@cordova.apache.org" href="http://cordova.io">        
        Apache Cordova Team   
     </author>    
     <content src="index.html" />    
     <plugin name="cordova-plugin-whitelist" version="1" />
     <access origin="*" />    
     <allow-intent href="http://*/*" />   
     <allow-intent href="https://*/*" />    
     <allow-intent href="tel:*" />    
     <allow-intent href="sms:*" />        
     <allow-intent href="mailto:*" />    
     <allow-intent href="geo:*" />    
     <platform name="android">        
         <allow-intent href="market:*" />   
     </platform>    
      <platform name="ios">      
            <allow-intent href="itms:*" />        
           <allow-intent href="itms-apps:*" />    
    </platform>
 </widget>

PS:码字确实幸苦啊T_T! 2016-3-16 01:30

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容