Cordova - config.xml

概述

config.xml 存储着 cordova 应用的全局配置信息。

更多信息请查看 官方参考文档

  • widget:config.xml 中的根元素
  • name:指定 app 名,它会显示在设备的主屏幕上
  • description:app 描述
  • author:作者信息
1
2
3
4
5
6
7
8
9
10
11
<widget ...>
...
<name>TommyGirl</name>
<description>
A beauty.
</description>
<author email="zhengyt_91@163.com" href="https://tommygirl.cn">
YYLittleCat
</author>
...
</widget>

content

指定 App 的根页面,默认是 index.html
示例:

1
2
3
<widget ...>
<content src="startPage.html"></content>
</widget>

access

配置允许 App 发起的网络请求(images, XHRs, etc)地址

注意:没有配置 access 标签时,,只有 file:// URL 被允许访问。但一般情况,App 包含一个默认的 <access origin="*"> 标签。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
<!--允许访问 google.com:-->
<access origin="http://google.com" />

<!--允许访问安全地址 google.com (https://):-->
<access origin="https://google.com" />

<!--允许访问 google.com 的所有子域名, 比如 mail.google.com and docs.google.com:-->
<access origin="http://*.google.com" />

<!--不阻止任何网络请求,比如 google.com and developer.mozilla.org:-->
<access origin="*" />
<!--This is the default value for newly created CLI projects.-->

allow-navigation

控制内部的 WebView 可以加载的 URL,只适用于顶级导航。

默认情况下,只允许 file:// 类型的 URL 访问。如果要加载其他的 URL,需要配置 <allow-navigation> 标签

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!-- 允许访问 example.com -->
<allow-navigation href="http://example.com/*" />

<!-- 允许使用通配符,协议,主机,地址都可以使用 -->
<allow-navigation href="*://*.example.com/*" />

<!-- 使用通配符,允许所有网址访问,包括HTTP and HTTPS and file
*不推荐使用* -->
<allow-navigation href="*" />

<!-- 上面的和下面这三条等价 -->
<allow-navigation href="http://*/*" />
<allow-navigation href="https://*/*" />
<allow-navigation href="data:*" />

为什么说不推荐使用 <allow-navigation href="*" /> 允许所有网址访问呢,昨天有个页面使用 window.location.href='sms://10086'; 的方式想打开发短信的功能,但 Cordova 提示 “不支持的URL” ,说明没有直接调用系统能力,而是作为一个新的导航去打开了。所以对于 sms、tel、mail 等系统能力的调用,应该使用 allow-intent ,并且 allow-navigation 不允许通配所有的访问。

allow-intent

定义 App 可以要求操作系统打开的链接地址,默认任何外部请求链接都被禁止。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<!-- 允许在浏览器中打开网址 -->
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />

<!-- 允许在浏览器中打开 example.com -->
<allow-intent href="http://example.com/*" />

<!-- 允许通配符的使用,在协议、主机、地址 -->
<allow-intent href="*://*.example.com/*" />

<!-- 允许在短信应用中打开sms:链接 -->
<allow-intent href="sms:*" />

<!-- 允许在电话应用中打开tel:链接 -->
<allow-intent href="tel:*" />

<!-- 允许在地图应用中打开geo:链接 -->
<allow-intent href="geo:*" />

<!-- 允许在已安装的app中打开未被识别的url地址
*NOT RECOMMENDED* -->
<allow-intent href="*" />

preference

关于 WebView 和页面行为的偏好设置。

配置详情:preference

feature

官方的翻译我没仔细看,这里我一般写需要启用的插件类。

更多请参考:feature

platform

对应的平台,iOS、Android 等等。

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