使用 Cordova 进行混合应用开发的学习笔记,期望对你有用。
widget 标签
config.xml 文档的根元素,属性详解如下:
id(string):指定应用程序的反向域标识符和版本的主/次/补丁符号表示其完整的版本号码。
version(string):主要/次要/补丁符号表示的完整版本号。
versionCode(string):另一个版本为 Android
xmlns(string):命名空间中的 config.xml 文件
xmlns:cdv(string):命名空间前缀
name 标签
指定应用程序的正式名字,它出现在设备的主屏幕上的 App Store 界面内。
description 标签
指定可在应用商店上出现的元数据
author 标签
指定可在应用商店上出现的联系人信息
content 标签
定义了顶级的 app 目录中应用程序的起始页面,默认值是 index.html。这个一般都是在项目的 www 目录下;属性详解如下:
src(string):定义了应用程序的起始也是,默认值是 index.html
access 标签
定义了应用程序可以与哪些域进行通讯;属性详解如下:
origin(string):* 表示允许它访问如何服务器;
allow-navigation 标签
该 URL 的 webView 控件本身可以浏览到,仅适用于顶级导航;属性详解如下:
href(string):定义组的 WebView 允许导航到外部的域
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
engine 标签
指定什么平台,什么版本;标签属性如下:
name(string):平台名称
spec(string):平台版本
<engine name="android" spec="^7.1.4" />
<engine name="browser" spec="^5.0.3" />
<engine name="ios" spec="^4.5.5" />
platform 标签
当使用 CLI 来构建应用程序,有时需要指定特定的平台偏好或者其他元素。
<platform name="android">
<icon density="ldpi" src="res/icon/android/xxxxxxx.png" />
</platform>
hook 标签
表示某些行为发生时被调用的自定义脚本(例如,插件添加或平台准备逻辑后调用)
<hook src="hooks/build.sh" type="before_prepare" />
preference 标签
<preference name="AutoHideSplashScreen" value="" />
自动隐藏启动页,value: false 不隐藏;value: true 隐藏
<preference name="SplashMaintainAspectRatio" value="true" />
<preference name="SplashShowOnlyFirstTime" value="false" />
SplashMaintainAspectRatio: 选填项,默认为 false。当设置为 true时,则不会拉伸图片来填充屏幕,会以图片原始比例现实图片。
SplashShowOnlyFirstTime: 选填项,默认为 true。当设置为 false 时,APP 通过 navigator.app.exitApp() 代码退出 app 后,在下次打开 APP 时,还会现实启动页面;为 true 时就不会出现。
<preference name="ShowSplashScreenSpinner" value="true" />
启动页是否允许旋转;默认为 true
<preference name="android-minSdkVersion" value="19" />
用于指定应用兼容的最低 Android SDK 版本
<preference name="android-targetSdkVersion" value="28" />
系统通过 targetSdkVersion 来保证 Android 的向前兼容性,在 Android4.4 之后的设备上,系统会判断你的 targetSdkVersion 是否小于 19,如果小于的话,那就按照 19 之前的 api 方法,如果大于等于 19,那么就按照之后的 api 方法来走,保证了程序运行的一致性,也就是向前兼容性。
<preference name="android-installLocation" value="auto" />
android:installLocation 可以设置为 auto、internalOnly、preferExternal 三个值中的任何一个;
auto: 程序可能被安装在外部存储介质上(例如:SD Card),但是默认会被安装到手机内存中;当手机内存为空时,程序将被安装到外部存储介质上,当程序安装到手机上后,用户可以决定将程序放在外部介质还是内存中。
internalOnly: 默认值,当设置为该值时,程序只能被安装在内存中,如果内存为空,则程序将不能安装成功。
perferExternal: 将程序安装在外部存储介质上,但是系统不能保证程序一定会被安装到外部存储介质上,当外部存储介质不可以或空时,程序将被安装到内存中。
<preference name="BackupWebStorage" value="local" />
BackupWebStorage(string): 可设置为 none、local、cloud;
cloud 支持通过 iCloud 备份 web 存储数据;
local 仅仅支持通过 iTunes 异步存储本地数据;
none 不进行本地存储数据备份;
<preference name="DisallowOverscroll" value="true" />
如果不想要 webView 出现橡皮筋滚动条,则设置为 true
<preference name="SuppressesLongPressGesture" value="true" />
A fix for the magnifying glass popping up on iOS9 when longpressing the webview. This is now disabled by default and can be enabled for longpress in config.xm
<preference name="target-device" value="universal" />
通用设备
<preference name="orientation" value="landscape" />
横屏竖屏锁定,可设置值为 default | landscape | portrait,其中 default 指根据手机自身设置现实。
<preference name="Fullscreen" value="true" />
配置 WebView 默认情况全屏浏览
<preference name="cdvBuildMultipleApks" value="false" />
配置这个属性,将生成多个 APK 文件,分别对应支持 X86、ARM 等平台,如果您的项目使用大型本地库,这个很重要,可以大大增加生成的 APK 大小,如果不设置,则会生成一个可在多平台架构上使用的 APK。
<preference name="xwalkMultipleApk" value="false" />
使用这个插件之后 APK 会生成一堆,各种版本,对各个版本不熟悉可以添加到 config.xml 中
<preference name="xwalk64bit" value="true" />
Crosswalk 支持你生成 64 位内部版本,它通常通过命令行参数生成,也可以通过如上方式。
<preference name="BackgroundColor" value="0xff000000" />
背景颜色
<preference name="AndroidPersistentFileLocation" value="Compatibility" />
Android 平台持久化文件保存设置,可设置为:Internal、Compatibility。
Internal:持久化文件保存在 /data/data/<packageId>
Compatibility:如果设备有 SD 卡(或等效的存储分区)。那么持久性文件将会被存储在该空间的跟路径下。
<preference name="iosPersistentFileLocation" value="Library" />
iOS 中持久化文件保存位置(Persistent storage location)
Compatibility:保存在程序的 Documents 文件目录下;
Library:保存在 Library 文件夹下
<preference name="cdvBuildMultipleApks" value="false" />
不知道,待补充