Cordova 3.x 基础(5) -- 配置文件config.xml
程序员文章站
2022-05-15 12:39:14
...
首先要注意的是:从3.3版本以后已经把www/config.xml移动到了根目录下。
在config.xml中定义的东西应该适应所有平台。在build工程的是时候,会看到“Generating config.xml from defaults for platform "android"”这样的字样,他会生成各个平台的config.xml。
生成的文件:
生成的config.xml当然会根据平台不同加入不同的内容。
比如Android下就就在config.xml添加了以下内容:
config.xml文件的Scheme基于W3C的Widgets定义。
基本构造:
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。
比如:
platforms/android/res/xml/config.xml中就会多了以下内容:
content:
应用的入口文件。默认是index.html。
其他:
widget的id属性,Android的话就是应用的package名,iOS是AppID。
widget的version属性就是应用的版本号(android:versionName)(3.5版本中可以android-versionCode="10")。
name标签就是应用的名字(把文件保存为UTF-8支持中文)。
***在"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";
在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添加了以下内容:
<preference name="loglevel" value="DEBUG" /> <feature name="App"> <param name="android-package" value="org.apache.cordova.App" /> </feature>
config.xml文件的Scheme基于W3C的Widgets定义。
基本构造:
<widget> <name></name> <preference /> <feature> <param /> </feature> <access /> <content /> </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
cordova build
platforms/android/res/xml/config.xml中就会多了以下内容:
<feature name="Camera"> <param name="android-package" value="org.apache.cordova.camera.CameraLauncher" /> </feature>
content:
应用的入口文件。默认是index.html。
其他:
widget的id属性,Android的话就是应用的package名,iOS是AppID。
widget的version属性就是应用的版本号(android:versionName)(3.5版本中可以android-versionCode="10")。
name标签就是应用的名字(把文件保存为UTF-8支持中文)。
***在"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";
上一篇: 爆冷,不看结尾,都猜不透这啥剧情
下一篇: cordova 项目 npm 启动工程
推荐阅读
-
Cordova 3.x 基础(9) -- UI框架jQuery Mobile
-
Cordova 3.x 基础(7) -- Native API的使用
-
Cordova 3.x 基础(8) -- 几个不可或缺的lib
-
Cordova 3.x 基础(10) -- UI框架Ionic Framework
-
Cordova 3.x 基础(2) -- 应用图标icon和启动页面SplashScreen
-
Cordova 3.x 基础(3) -- 调试工具Debug
-
Cordova 3.x 基础(1) -- 环境搭建(Windows / Android)
-
Cordova 3.x 基础(11) -- JS是如何调用本地API的?
-
Cordova 3.x 基础(4) -- deviceready事件
-
Cordova 3.x 基础(4) -- deviceready事件