H5+APP配置文件说明
Manifest.json文件是5+移动App的配置文件,用于指定应用的显示名称、图标、应用入口文件地址及需要使用的设备权限等信息,用户可通过HBuilder的可视化界面视图或者源码视图来配置5+移动App的信息。
Manifest.json文件根据w3c的webapp规范制定,plus节点下内容为HTML5Plus扩展规范,其下包括iOS和Android子节点,内容来源分别为iOS和Android原生打包所要求的参数,用于对5+移动App打包为ipa或apk安装包进行配置。
应用基本信息配置
在HBuilder中创建“移动App”应用后后都会在工程下生成manifest.json文件,在“项目管理器”中双击即可打开。
HBuilder打开manifest.json文件后默认显示“可视化视图”,可配置应用的基本信息:
点击窗口底部的“代码视图”可切换到代码视图:
应用信息
包括应用的名称、入口页面地址、版本信息等。
可视化视图
- 应用名称:App打包后在手机上桌面的快捷方式名称;
- appid:HBuilder appid(应用标识),在创建时分配的、以后不可改的标识。如用户手动修改ID打包时会提示参数错误;
- 版本号:应用的版本号,用户可通过plus API(plus.runtime.version)获取应用的版本号,需提交App云端打包后才能生效;
- 入口页面:应用启动后自动打开的第一个HTML页面,可填写本地html文件地址(相对于应用根目录)或网络地址(以http://或https://开头)。
代码视图
字段说明:
节点名 | 二级节点 | 是否可选 | 说明 |
---|---|---|---|
id | 必选 | Hbuilder appid | |
launch_path | 必选 | 入口页面 | |
name | 必选 | 应用名称 | |
version | name | 必选 | 版本号(名称),在应用中显示的字符串 |
version | code | 可选 | 版本号(数字),各应用市场以此判断版本号,数字大表示版本号高,未指定时HBuilder在提交App云端打包时会自动生成保证新打包版本后高 |
重力感应
配置应用运行时支持的显示方向。
可视化视图
可通过点击表示设备方向的按钮来选择设备支持重力感应旋转方向。
重力选择按钮可选择一个或多个,选择多个方向后,应用可按照指定方向显示应用页面,如只选中一个按钮,表示终端只支持一个方向显示页面内容。
代码视图
通过plus->distribute->orientation字段值进行控制:
- "portrait-primary":竖屏正方向;
- "portrait-secondary":竖屏反方向;
- "landscape-primary":横屏正方向;
- "landscape-secondary":横屏反方向。
注意:需要提交App云端打包后才生效。
平台选择
用于选择应用支持的手机平台,选择支持后会出现对应的平台图标和启动界面配置项:
- iOS:支持iOS平台
- iPhone:支持iPhone(iTouch)设备
- iPad:支持iPad设备
- Android:支持Android平台
注意:IOS打包支持iPhone和iPad两种设备,用户需要根据应用的运行效果自行选择。设备的支持可选择一种或两种。
如只选择iPhone设备打包,打包后应用在iPad上运行效果为四周有黑色边框效果,应用获取的设备分辨率为iPhone设备的分辨率; 如只选择iPad设备打包,则应用无法安装到iPhone设备上; 如果两设备同时选择,则程序在设备上运行均为全屏效果。
应用图标和启动图片
可视化视图
在平台中选择后则会出现对应平台的应用图标和启动图片配置项:
点击展开详细配置项:
按照页面提示的分辨率选择对应的应用图标和启动图片即可。
注意:所有图片格式必须是png,且严格符合分辨率要求。使用其他图片格式重命名为png会导致打包失败!
代码视图
在代码视图中可以进行更加灵活的配置:
iOS平台
应用图标
iOS平台应用图标配置项在plus->distribute->icons->ios下进行配置:
prerendered:应用图标是否已经高亮处理,在iOS6及以下设备上有效;
auto:App云端打包自动生成各种尺寸的原始图片,要求为512x512的png图,没有在iphone和ipad中指定对应分辨率图标时则通过此文件进行缩放自动生成;
iphone:指定iPhone设备上各iOS版本上使用的应用图标(png格式),详情如下:
节点名 | 图标尺寸 | 说明 |
---|---|---|
normal | 57*57 | iPhone普通屏幕程序图标 |
retina | 114*114 | iPhone高分屏程序图标 |
retina7 | 120*120 | iPhone iOS7高分屏程序图标 |
retina8 | 180*180 | iPhone6Plus程序图标 |
spotlight-normal | 29*29 | iPhone Spotlight搜索程序时出现在程序列表中的图标 |
spotlight-retina | 58*58 | iPhone高分屏Spotlight搜索程序图标 |
spotlight-retina7 | 80*80 | iPhone iOS7高分屏Spotlight搜索程序图标 |
settings-normal | 29*29 | iPhone设置页面程序图标 |
settings-retina | 58*58 | iPhone高分屏设置页面程序图标 |
settings-retina8 | 87*87 | iPhone6Plus设置页面程序图标 |
ipad:指定各种iPad设备上各iOS版本上使用的应用图标(png格式):
节点名 | 图标尺寸 | 说明 |
---|---|---|
normal | 72*72 | iPad普通屏幕程序图标 |
retina | 144*144 | iPad高分屏程序图标 |
normal7 | 76*76 | iPad iOS7程序图标 |
retina7 | 152*152 | iPad iOS7高分屏程序图标 |
spotlight-normal | 50*50 | iPad Spotlight搜索程序时出现在程序列表中的图标 |
spotlight-retina | 100*100 | iPad高分屏Spotlight搜索程序图标 |
spotlight-normal7 | 40*40 | iPad iOS7 Spotlight搜索程序图标 |
spotlight-retina7 | 80*80 | iPad iOS7高分屏Spotlight搜索程序图标 |
settings-normal | 29*29 | iPad设置页面程序图标 |
settings-retina | 58*58 | iPad高分屏设置页面程序图标 |
启动图片
iOS平台应用启动图片配置项在plus->distribute->splashscreen->ios下进行配置:
iphone:指定各iPhone设备上使用的启动图片(png格式),详情如下:
节点名 | 图标尺寸 | 说明 |
---|---|---|
default | 320*480 | iPhone3启动图片 |
retina35 | 640*960 | 3.5英寸设备(iPhone4)启动图片 |
retina40 | 640*1136 | 4.0英寸设备(iPhone5)启动图片 |
retina55 | 1242*2208 | 4.7/5.5英寸设备(iPhone6[Plus]/7[Plus]/8[Plus])启动图片 |
retina55l | 2208*1242 | 4.7/5.5英寸设备(iPhone6[Plus]/7[Plus]/8[Plus])横屏启动图片 |
iphonex | 1125*2436 | 5.8英寸设备(iPhoneX)启动图片 |
iphonexl | 2436*1125 | 5.8英寸设备(iPhoneX)横屏启动图片 |
ipad:指定各种iPad设备上使用的启动图片(png格式):
节点名 | 图标尺寸 | 说明 |
---|---|---|
portrait | 768*1004 | 需支持iPad时必选,iPad竖屏启动图片 |
portrait-retina | 1536*2008 | 需支持iPad时必选,iPad高分屏竖屏图片 |
landscape | 1024*748 | 需支持iPad时必选,iPad横屏启动图片 |
landscape-retina | 2048*1496 | 需支持iPad时必选,iPad高分屏横屏启动图片 |
portrait7 | 768*1024 | iOS7时必选,iPad竖屏启动图片 |
portrait-retina7 | 1536*2048 | 需支持iPad iOS7时必选,iPad高分屏竖屏图片 |
landscape7 | 1024*768 | 需支持iPad iOS7时必选,iPad横屏启动图片 |
landscape-retina7 | 2048*1536 | 需支持iPad iOS7时必选,iPad高分屏横屏启动图片 |
Android平台
应用图标
Android平台应用图标配置项在plus->distribute->icons->android下进行配置:
指定各种分辨率设备上使用的应用图标(png格式)
节点名 | 图标尺寸 | 说明 |
---|---|---|
mdpi | 48*48 | 普通屏程序图标 |
ldpi | 48*48 | 大屏程序图标 |
hdpi | 72*72 | 高分屏程序图标 |
xhdpi | 96*96 | 720P高分屏程序图标 |
xxhdpi | 144*144 | 1080P高分屏程序图标 |
启动图片
Android平台应用启动图片配置项在plus->distribute->splashscreen->android下进行配置:
指定各种分辨率设备上使用的启动图片(png格式)
节点名 | 图标尺寸 | 说明 |
---|---|---|
mdpi | 240*282 | 普通屏启动图片 |
ldpi | 320*442 | 大屏启动图片 |
hdpi | 480*762 | 高分屏启动图片 |
xhdpi | 720*1242 | 720高分屏幕启动图片 |
xxhdpi | 1080*1882 | 1080p高分屏启动图片 |
第三方插件
在5+应用中如需要使用推送、统计、分享等功能,则需要在打包时选择使用第三方插件,并填写相关配置信息。
选中“使用第三方插件”后会出现自动出现“插件设置”项,展开为:
选中需要使用的插件模块,则会自动显示对应的参数配置输入框。
统计插件
5+目前在统计插件方面集成的是友盟统计平台,开发者可以通过集成统计插件来对已开发的应用的重要信息点进行统计,并通过友盟后台网站查看统计数据。用户需要在友盟统计官网(http://www.umeng.com/)申请应用。
参考统计插件配置
地图插件
5+目前集成了百度地图和高德地图,开发者可以在应用中调用plus.maps.* API显示地图。
需在百度地图开发者网站(http://developer.baidu.com/map/)申请应用的appkey
并在manifest.json文件中配置。IOS设备和Android设备需要单独申请各自的appkey。
参考地图插件配置
支付插件
5+目前已集成以下支付平台的sdk:
- 支付宝
使用支付功能前必须在支付宝网站开通”快捷支付“服务,并配置服务器生成订单信息。 - 微信支付
参考支付插件配置
分享插件
5+目前已集成以下分享平台:
参考分享插件配置
推送插件
授权登录插件
5+目前已集成以下第三方授权登录平台:
完整manifest.json格式
上面介绍了manifest.json文件的常用配置信息,下面是一些5+ APP特有或根据平台特性补充的一些配置信息。在HBuilder中需打开manifest.json文件并切换到“代码视图”进行手动配置。
复制代码{ "id": "必选,应用的标识", "name": "必选,应用名称", "version": { "name": "必选,版本名称", "code": "必选,版本代号,对应原来的versionCode值" }, "description": "可选,应用描述信息", "icons": { "48": "可选,应用图标的路径,可以放多种分辨率" }, "launch_path": "必选,应用的入口页面,默认为根目录下的index.html;也可以是网络地址,网络地址必须以http://或https://开头", "developer": { "name": "可选,开发者名称", "email": "可选,开发者邮箱地址", "url": "可选,开发者网站地址" }, "permissions": { "Accelerometer": "必选,访问设备感应器", "Camera": "必选,访问设备感应器", "Contacts": "必选,访问设备感应器", "UI": "必选,访问设备感应器", "push": { "cover": "true" }, "runtime": "必选,访问设备感应器" }, "orientation": [ "portrait", "landscape", "可选," ], "default_locale": "可选,保留作为默认使用的本地化资源,暂不使用", "locales": "可选,保留作为本地化使用,暂不使用", "plus": { "arguments": "启动应用的参数,应用中可通过plus.runtime.arguments获取", "splashscreen": { "autoclose": "可选,是否自动关闭启动界面,默认值为true", "event": "titleUpdate|rendering|loaded,触发自动关闭splash界面的事件", "target": "default|second,event事件的目标Webview窗口", "waiting": "true|false,是否显示等待雪花", "delay": "可选,启动界面在应用的首界面加载完毕后延迟关闭的时间,单位为ms", "ads": { "background": "开屏广告背景颜色,#RRGGBB格式字符串,默认值为白色(#FFFFFF)", "image": "开屏广告底部图片地址,如logo.png,相对应用资源目录路径,不支持网络地址" } }, "statusbar": { "immersed": "none|suggestedDevice|supportedDevice,沉浸式状态栏情况", "style": "dark|light, 系统状态栏样式", "background": "#RRGGBB格式字符串,系统状态栏背景颜色" }, "safearea": { //安全区域配置,仅iOS平台生效 "background":"#CCCCCC", // 安全区域外的背景颜色,默认值为"#FFFFFF" "bottom":{ // 底部安全区域配置 "offset":"none|auto" // 底部安全区域偏移,"none"表示不空出安全区域,"auto"自动计算空出安全区域,默认值为"none" }, "left": { // 左侧安全区域配置(横屏显示时有效) "offset":"none|auto" }, "right: { // 右侧安全区域配置(横屏显示时有效) "offset":"none|auto" } }, "softinput": { "navBar": "auto|none", // 是否显示软键盘上的导航条 "auxiliary": true|false, // 是否开启辅助输入功能 "mode": "adjustResize|adjustPan" // 软键盘弹出模式 }, "popGesture": "none,新建webview窗口无侧滑返回功能;close:新建webview窗口默认侧滑返回关闭;hide:新建webview窗口默认侧滑返回隐藏。", "error": { "url": "页面加载错误时打开的页面地址,可以是网络地址,也可以是本地地址" }, "useragent": { "value": "要设置的默认userAgent值", "concatenate": true }, "cache": { "mode": "Webview窗口的默认缓存模式,可取值default、cacheElseNetwork、noCache、cacheOnly" }, "cers": { "description": "控制是否开启应用异常崩溃与错误报告系统", "crash": true }, "kernel": { "ios": "Webview窗口默认使用的内核,可取值:WKWebview - 在iOS8.0及以上系统默认使用WKWebview内核,UIWebview - 使用UIWebview内核,默认值为UIWebview" }, "ssl": { "untrustedca": "accept|refuse|warning,访问https网络时对非受信证书的处理逻辑" }, "launchwebview": { "overrideresource": [{ "match": "区配拦截的资源url地址", "redirect": "拦截资源的重现向地址", "mime": "拦截资源的数据类型", "encoding": "拦截资源的数据编码", "header": "拦截资源的http头数据" }], "overrideurl": { "mode": "allow|reject,拦截模式", "match": "匹配拦截规则", "exclude": "none|redirect,排除拦截理规则" }, "titleNView": { "backgroundcolor": "#F7F7F7, 标题栏背景颜色", "titletext": "标题栏标题文字内容", "titlecolor": "#000000, 标题栏标题文字颜色" } }, "secondwebview": { "launch_path": "加载页面地址", "id": "Webview窗口标识", "mode": "front|child|behind,Webview显示模式", "height": "0px|10%,Webview窗口高度", "overrideresource": [{ "match": "区配拦截的资源url地址", "redirect": "拦截资源的重现向地址", "mime": "拦截资源的数据类型", "encoding": "拦截资源的数据编码", "header": "拦截资源的http头数据" }], "overrideurl": { "mode": "allow|reject,拦截模式", "match": "匹配拦截规则", "exclude": "none|redirect,排除拦截理规则" } }, "runmode": "normal", "signature": "可选,保留给应用签名,暂不使用", "confusion": { "description":"js原生混淆配置", "resources":{ } } "distribute": { "debug": "可选,是否为debug模式,可取值:true表示debug模式运行,false表示release模式运行,默认值为false", "apple": { "appid": "iOS必选,苹果开发网站申请的appid,如io.dcloud.hbuilder", "mobileprovision": "iOS必选,打包配置文件", "password": "iOS必选,导入配置文件密码", "p12": "iOS必选,打包配置文件关联的个人证书", "devices": "iphone,可取值iphone/ipad/universal", "UIReserveStatusbarOffset": "应用的区域是否预留系统状态栏位置(应用区域通顶到系统状态栏区域),仅iOS7及以上平台有效,Boolean类型,true表示预留系统状态栏位置(不通顶),false表示不预留系统状态栏位置(通顶),默认值为true。", "UIStatusBarStyle": "设置状态栏的样式,可取值UIStatusBarStyleBlackTranslucent/UIStatusBarStyleDefault/UIStatusBarStyleBlackOpaque", "StatusBarBackground": "设置状态栏的背景颜色,iOS7以上系统有效,支持#RRGGBB格式", "UIBackgroundModes": ["设置应用是否支持后台模式,可取值“audio”表示支持后台播放音乐"], "urltypes": [{ "urlschemes": [ "hbuilder", "必选,程序所支持的自定义协议名称" ], "id": "可选,自定义协议的标识", "icon": "可选,打开程序时显示的图标" }, { "urlschemes": [ "http", "https", "必选,程序所支持的自定义协议名称,大小写无关,推荐使用小写" ], "id": "可选,自定义协议的标识", "icon": "可选,打开程序时显示的图标" } ], "deploymentTarget": "iOS支持的最低操作系统版本,例如:9.1.0", "frameworks": ["使用native.js调用API要引用的库文件名称,如CoreLocation.framework", "QuartzCore.framework"] }, "google": { "packagename": "Android必选,程序包名,如com.dheaven.hbuilder", "keystore": "Android必选,打包证书文件", "password": "Android必选,打包证书密码", "aliasname": "Android必选,打包证书别名", "hardwareAccelerated": "Boolean类型,是否开启硬件加速,true表示开启,false表示关闭", "schemes": [ "应用支持的scheme,大小写相关,推荐使用小写" ], "theme": "程序使用的主题", "android:name": "自定义程序入口类名", "custompermissions": "Boolean类型,是否自定义android权限,true表示自定义权限,只使用permissions下指定的android权限,不根据用户使用的5+模块自动添加android权限,false表示自动根据用户使用的5+模块自动添加android权限", "permissions": [ "要添加的额外的android权限,如<uses-permission android:name=\"com.android.launcher.permission.INSTALL_SHORTCUT\" />", "<uses-permission android:name=\"com.android.launcher.permission.UNINSTALL_SHORTCUT\" />" ], "minSdkVersion":"apk支持的最低版本,默认值为14", "targetSdkVersion":"apk的目标版本,默认值为23", "locale": "应用的语言,默认值为default(系统语言),如en_US表示使用英语(美国)" }, "orientation": [ "portrait-primary", "landscape-primary", "portrait-secondary", "landscape-secondary" ], "icons": { "ios": { "appstore":"必选, 1024x1024, 提交app sotre使用的图标", "iphone": { "app@2x": "可选,120x120,iOS7-11程序图标(iPhone4S/5/6/7/8)", "app@3x": "可选,180x180,iOS7-11程序图标(iPhone6plus/7plus/8plus/X)", "spotlight@2x": "可选,80x80,iOS7-11 Spotlight搜索图标(iPhone5/6/7/8)", "spotlight@3x": "可选,120x120,iOS7-11 Spotlight搜索图标(iPhone6plus/7plus/8plus/X)", "settings@2x": "可选,58x58,iOS5-11 Settings设置图标(iPhone5/6/7/8)", "settings@3x": "可选,87x87,iOS5-11 Settings设置图标(iPhone6plus/7plus/8plus/X)", "notification@2x": "可选,40x40,iOS7-11 通知栏图标(iPhone5/6/7/8)", "notification@3x": "可选,60x60,iOS7-11 通知栏图标(iPhone6plus/7plus/8plus/X)" }, "ipad": { "app[normal7]": "可选,76x76,iOS7-11程序图标", "app@2x[retina7]": "可选,152x152,iOS7-11程序图标(高分屏)", "proapp@2x": "可选,167x167,iOS9-11程序图标(iPad Pro)", "spotlight": "可选,40x40,iOS7-11 Spotlight搜索图标", "spotlight@2x": "可选,80x80,iOS7-11 Spotlight搜索图标(高分屏)", "settings": "可选,29x29,iOS5-11 设置图标", "settings@2x": "可选,58x58,iOS5-11 设置图标(高分屏)", "notification": "可选,20x20,iOS7-11 通知栏图标", "notification@2x": "可选,40x40,iOS7-11 通知栏图标(高分屏)" } }, "android": { "mdpi": "必选,48x48,普通屏程序图标", "ldpi": "必选,48x48,大屏程序图标", "hdpi": "必选,72x72,高分屏程序图标", "xhdpi": "必选,96x96,720P高分屏程序图标", "xxhdpi": "必选,144x144,1080P高分屏程序图标", "xxxhdpi": "可选,192x192" } }, "splashscreen": { "ios": { "iphone": { "default": "可选,320x480,iPhone3启动图片", "retina35": "可选,640x960,3.5英寸设备(iPhone4)启动图片", "retina40": "可选,640x1136,4.0英寸设备(iPhone5)启动图片", "retina40l":"可选,1136x640,4.0英寸设备(iPhone5)横屏启动图片", "retina47": "可选,750x1334,4.7英寸设备(iPhone6)启动图片", "retina47l": "可选,1334x750,4.7英寸设备(iPhone6)横屏启动图片", "retina55": "可选,1242x2208,5.5英寸设备(iPhone6Plus)启动图片", "retina55l": "可选,2208x1242,5.5英寸设备(iPhone6Plus)横屏启动图片", "iphonex": "可选,1125x2436,iPhoneX启动图片", "iphonexl": "可选,2436x1125,iPhoneX横屏启动图片" }, "ipad": { "portrait": "可选,768x1004,需支持iPad时必选,iPad竖屏启动图片", "portrait-retina": "可选,1536x2008,需支持iPad时必选,iPad高分屏竖屏图片", "landscape": "可选,1024x748,需支持iPad时必选,iPad横屏启动图片", "landscape-retina": "可选,2048x1496,需支持iPad时必选,iPad高分屏横屏启动图片", "portrait7": "可选,768x1024,需支持iPad iOS7时必选,iPad竖屏启动图片", "portrait-retina7": "可选,1536x2048,需支持iPad iOS7时必选,iPad高分屏竖屏图片", "landscape7": "可选,1024x768,需支持iPad iOS7时必选,iPad横屏启动图片", "landscape-retina7": "可选,2048x1536,需支持iPad iOS7时必选,iPad高分屏横屏启动图片" } }, "android": { "mdpi": "必选,240x282,普通屏启动图片", "ldpi": "必选,320x442,大屏启动图片", "hdpi": "必选,480x762,高分屏启动图片", "xhdpi": "必选,720x1242,720P高分屏启动图片", "xxhdpi": "必选,1080x1882,1080P高分屏启动图片" } }, "plugins": { "statics": { "umeng": { "appkey_ios": "必选,iOS平台友盟统计应用密钥,如5379d57656240b5493130a40", "channelid_ios": "可选,iOS平台应用发布通道标识,如appstore", "appkey_android": "必选,Android平台友盟统计应用密钥,如5379d5c456240b9c8b045211", "channelid_android": "必选,Android平台应用发布通道标识,如googleplay", "appkey": "废弃,友盟统计应用密钥", "channelid": "废弃,友盟统计应用发布通道标识" } }, "maps": { "baidu": { "appkey_ios": "必选,iOS平台百度地图应用密钥,如mRFUA0lOYyCGXOcFkZ4cP44K", "appkey_android": "必选,Android平台百度地图应用密钥,如mRFUA0lOYyCGXOcFkZ4cP44K", "appkey": "废弃,老版本使用的应用密钥,如mRFUA0lOYyCGXOcFkZ4cP44K", "description": "百度地图" } }, "speech": { "ifly": { "appid": "必选,讯飞语音识别应用标识" } }, "push": { "igexin": { "appid": "必选,个推应用标识", "appkey": "必选,个推应用appkey", "appsecret": "必选,个推应用安全标识" } }, "share": { "sina": { "appkey": "必选,新浪网站申请", "appsecret": "必选,新浪网站申请", "redirect_uri": "必选,新浪网站申请应用时填写", "description": "可选,新浪微博分享" }, "tencent": { "appkey": "必选,腾讯网站申请", "appsecret": "必选,腾讯网站申请", "redirect_uri": "必选,腾讯网站申请应用时填写", "description": "可选,腾讯微博分享" }, "weixin": { "appid": "必选,微信网站申请", "appsecret": "必选,微信网站申请", "description": "可选,微信分享" } }, "payment": { "alipay": { "scheme": "必选,iOS平台调用支付宝的“快捷支付”应用返回时用到的标识", "description": "可选,阿里支付" }, "weixn": { "description": "可选,微信支付" } } } }, "adid": "广告联盟会员ID" } }
应用是否全屏显示
fullscreen节点定义应用是否全屏方式显示,Boolean值:true表示应用全屏方式显示,false表示非全屏方式显示(显示系统状态栏)。
默认值为false。
5+ API模块设置
permissions节点定义应用调用扩展API的权限,JSON格式对象,字段值为扩展API的feature名称,参考5+ API模块化分类
包括以下字段:
- "description":扩展特性描述信息
特殊字段: - "cover":Push API模块有效,布尔类型,用于描述是接收到新的推送消息后是否在覆盖系统消息中心中以前的消息,true表示覆盖,false表示不覆盖,默认值为false。
开发者信息
应用的开发者信息,包括以下字段信息:
- name;开发者名称,字符串类型
- email;开发者邮箱地址,字符串类型
- url:开发者网站地址,字符串类型。
5+ 扩展参数
arguments
可选项,应用启动时的5+默认参数,String类型。
在5+中可通过plus.runtime.arguments获取,如果外部调用应用时传入了参数,则覆盖此默认参数。
splashscreen
可选项,程序启动界面配置信息,JSON格式对象,包括以下字段:
- autoclose:是否自动关闭程序启动界面,布尔类型。默认为true,即自动关闭程序启动界面,否则需要在应用中显式调用plus.navigator.closeSplashscreen方法来关闭。
- event:触发自动关闭splash界面的事件类型,字符串类型,可取值:"titleUpdate"表示当首页Webview的titleUpdate事件触发时自动关闭splash界面,"rendering"表示当首页Webview的rendering事件触发时自动关闭splash界面,"loaded":表示当首页Webview的loaded事件触发时自动关闭splash界面。默认值为loaded。
- target:设置双首页模式下,定义目标webview触发event类型自动关闭splash界面,可取值:"default"根据首页Webview的event事件关闭splash,"second":根据第二个首页Webview的event事件关闭splash,默认值为"default"。
- waiting:是否在程序启动界面显示等待雪花,布尔类型。默认为false,即不显示等待雪花。
- delay:启动界面在应用的首页面加载完毕后延迟关闭的时间,单位为毫秒,数字类型。默认不延迟,即首页面加载完毕后立即关闭。
- ads:开屏广告配置信息,JSON格式对象,包括以下属性: background设置背景颜色,image设置底部图片地址,相对应用资源目录路径,不支持网络地址,建议分辨率720x256(要求png格式,背景透明,留出边距,在不同分辨率手机上会自动等比例缩放处理)
statusbar
应用启动后的系统状态栏样式,包括以下字段:
-immersed:定义应用是否使用沉浸式状态栏样式,String类型:"none"非沉浸式状态栏样式(与之前Boolean类型的false一致);"suggestedDevice"沉浸式状态栏,仅在支持设置状态栏前景色样式的设备上生效(Android5.0的小米&魅族、Android6.0及以上,iOS在所有设备上生效);"supportedDevice"沉浸式状态栏,在所有支持沉浸式状态栏设备上生效(与之前的true一致,Android4.4及以上);"true"沉浸式状态栏样式,系统状态栏背景颜色透明(此时background属性值无效),Webview窗口显示在系统状态栏下;"false"非沉浸式状态栏样式,由style和background决定。 默认值为"false"。
-style:系统状态栏样式(前景颜色),字符串类型,可取以下值:"dark"深色前景色样式(即状态栏前景文字为黑色),此时background建议设置为浅颜色;"light"浅色前景色样式(即状态栏前景文字为白色),此时background建设设置为深颜色。可通过plus.navigator.setStatusBarStyle()动态调整。注:Android5.0(小米&魅族)和Android6.0及以上系统支持,iOS7.0及以上系统支持
-background:系统状态栏背景颜色,字符串类型,#RRGGBB格式,颜色值格式为"#RRGGBB",如"#FF0000"为红色。默认使用系统样式,通常iOS平台默认为light样式;Android平台默认为dark(各ROM厂商存在差异)。可通过plus.navigator.setStatusBarBackground()动态调整。注:仅在immersed属性值设置为false时有效
softinput
软键盘相关配置,包括以下字段:
- navBar:软键盘上导航条的显示模式,字符串类型(仅iOS平台支持)
"auto"表示系统默认值(即显示导航条);
"none"表示不显示。
默认值为"auto" - auxiliary:是否开启辅助输入功能,Boolean类型
true表示开启,false表示关闭,默认值为true - mode:弹出系统软键盘模式,字符串类型
"adjustResize"表示弹出软键盘时自动调整窗口大小;
"adjustPan"表示弹出软键盘时自动移动滚动窗口使得输入框可见(Android平台可能会出现软键盘盖住输入框的情况)。
默认值为"ajustResize"。
注:仅Android平台生效,需提交云端打包后才能生效,应用全局生效(不支持对单个窗口进行控制)。
(iOS平台可通过WebviewStyles的softinputMode属性对单个窗口进行控制)
useragent
程序中http请求的userAgent信息,JSON格式对象,包括以下字段:
- value:userAgent值,字符串类型。
- concatenate:是否将value值作为追加值连接到默认userAgent值之后,true表示追加模式,若value不以空格字符开头,则在其前面自动添加空格字符。默认为false,即覆盖默认userAgent值。
cache
可选项,程序的缓存配置信息,JSON格式对象,包括以下字段:
- mode:Webview窗口默认使用的缓存模式,可取值: "default" - 根据cache-control决定是否使用缓存数据,如果存在缓存并且没有过期则使用本地缓存资源,否则从网络获取; "cacheElseNetwork" - 只要存在缓存(即使过期)数据则使用,否则从网络获取; "noCache" - 不使用缓存数据,全部从网络获取; "cacheOnly" - 仅使用缓存数据,不从网络获取(注:如果没有缓存数据则会导致加载失败)。 默认使用"default"。
cers
可选项,程序的异常崩溃与错误报告系统配置信息,JSON格式对象,包括以下字段:
- crash:是否提交程序异常崩溃信息,true表示提交,false表示不提交,默认值为true。
kernel
可选项,Webview窗口使用的内核,JSON格式对象,包括以下字段:
- ios:iOS平台Webview窗口默认使用的内核,可取值:
"WKWebview" - 在iOS8.0及以上系统默认使用WKWebview内核;
"UIWebview" - 使用UIWebview内核。
默认值为UIWebview。
runmode
应用的运行模式,字符串类型,可取值:
- "normal":正常运行模式。
- "liberate":释放资源运行模式,应用在第一次启动时将解压自带资源到SDcard,正常情况不推荐使用该模式。该模式的缺点:第一次启动更慢,耗费时间先解压、容易被三方清理软件清理。该模式有用的场景:此模式下File API才可正常访问_www应用资源,以及在某些Android rom访问本地页面时url地址中包含?带参数,但不推荐使用这种跨页传参方式,推荐使用其他方式跨页传参http://ask.dcloud.net.cn/article/288。
- wap2app 应用固定为 liberate,不支持自定义。
allowsInlineMediaPlayback
允许应用内video标签非全屏播放,仅iOS平台有效,并且video标签必须添加webkit-playsinline属性,如下示例:
复制代码<video controls="controls" src="http://.../x.mp4" webkit-playsinline>
error
定义窗口加载错误时的处理逻辑,其下包括以下字段:
- url:窗口加载错误时(如本地页面不存在,或者无法访问的网络地址)跳转的页面地址,仅支持本地页面地址。设置为“none”则关闭跳转到错误页面功能,此时页面显示Webview默认的错误页面内容。默认使用5+ Runtime内置的错误页。
ssl
配置应用ssl相关设置,包括以下字段:
- “untrustedca”:配置应用中https请求时,如果服务器返回非受信证书的处理逻辑,字符串类型,可取值:
"accept" - 接受此非受信证书,继续访问
"refuse" - 拒绝此非 受信证书,停止访问
"warning" - 弹出警告提示框提醒用户,由用户确定是否继续访问。 默认值为"accept"。
launchwebview
应用首页Webview的配置信息,包括以下字段:
- "overrideresource":配置应用首页的拦截资源请求处理逻辑,可包含多条配置项,配置项json支持以下属性
match: 区配拦截的资源url地址,支持正则表达式,与WebviewOverrideResourceOptions的match属性功能一致
redirect: 拦截资源的重现向地址,仅支持本地资源地址,如"_www"、"_doc"、"_downloads"、"_documents"等开头的路径,与WebviewOverrideResourceOptions的redirect属性功能一致
mime: 拦截资源的数据类型,RFC2045/RFC2046/RFC2047/RFC2048/RFC2049规范中定义的数据类型,与WebviewOverrideResourceOptions的mime属性功能一致
encoding: 拦截资源的数据编码,默认值"UTF-8",与WebviewOverrideResourceOptions的encoding属性功能一致
header: 拦截资源的http头数据,JSON格式数据,与WebviewOverrideResourceOptions的encoding属性功能一致
注:以上配置项与Webview的overrideResourceRequest方法作用一致,配置项可参考http://www.dcloud.io/docs/api/zh_cn/webview.html#plus.webview.WebviewObject.overrideResourceRequest - "overrideurl":配置应用首页的拦截链接请求处理逻辑,支持以下属性
mode:拦截模式,可取值:
"allow":表示满足match属性定义的条件时不拦截url继续加载,不满足match属性定义的条件时拦截url跳转并触发callback回调
"reject":表示满足match属性定义的提交时拦截url跳转并触发callback回调,不满足match属性定义的条件时不拦截url继续加载
默认值为"reject"。
match:匹配拦截规则,支持正则表达式,默认值为对所有URL地址生效(相当于正则表达式“.*”)。 如果mode值为"allow"则允许区配的URL请求跳转,mode值为"reject"则拦截区配的URL请求。
exclude:排除拦截理规则,可取值:
"none"表示不排除任何URL请求(即拦截处理所有URL请求)
"redirect"表示排除拦截处理301/302跳转的请求(谨慎使用,非a标签的href触发的URL请求可能会误判断为302跳转)
默认值为"none"。 - "titleNView":配置应用首页的标题栏,配置此属性则首页显示标题栏,支持以下属性:
backgroundcolor:标题栏背景颜色,字符串类型,格式为“#RRGGBB”,默认值为灰黑色(#1B1A1F)
titletext:标题栏标题文字内容,默认值为当前加载页面的标题
titlecolor:标题栏标题文字颜色,字符串类型,格式为“#RRGGBB”,默认值为白色(#FFFFFF)
secondwebview
应用双首页模式配置项,添加此字段则表明应用采用双首页模式运行,应用启动除了创建默认入口页外还创建第二个Webview,配置信息包括以下字段:
- "launch_path":第二个Webview加载的页面地址,支持网络地址和本地地址
- "id":第二个Webview窗口标识,默认值为%APPID%__second
- "mode":第二个Webview显示模式,可取值:
"child":表示作为launchwebview的子窗口
"front":表示与launchwebview平级并在其前显示
"behind":表示与launchwebview平级并在其后显示
默认值为"front"。 - "height":第二个Webview窗口高度
- "injection":控制第二个Webview是否提前注入js, 包括all.js/wap2app.js/setJsXXX设置的js等,布尔类型:
true:提前注入,android平台则会拦截第一个网络js资源请求,将要注入的js添加的网络js数据前;iOS平台则会解析到第一个script节点时注入。
false:不提前注入,页面加载完成后(loaded事件)再注入。
默认值为true。
注:Android提前注入的问题会影响页面加载速度(大概在400ms左右);iOS提前注入的问题是会导致302调转的拦截问题(wap2app可能出现白屏)。 - "overrideresource":配置应用首页的拦截资源请求处理逻辑,可包含多条配置项,配置项json支持以下属性
match: 区配拦截的资源url地址,支持正则表达式,与WebviewOverrideResourceOptions的match属性功能一致
redirect: 拦截资源的重现向地址,仅支持本地资源地址,如"_www"、"_doc"、"_downloads"、"_documents"等开头的路径,与WebviewOverrideResourceOptions的redirect属性功能一致
mime: 拦截资源的数据类型,RFC2045/RFC2046/RFC2047/RFC2048/RFC2049规范中定义的数据类型,与WebviewOverrideResourceOptions的mime属性功能一致
encoding: 拦截资源的数据编码,默认值"UTF-8",与WebviewOverrideResourceOptions的encoding属性功能一致
header: 拦截资源的http头数据,JSON格式数据,与WebviewOverrideResourceOptions的encoding属性功能一致
注:以上配置项与Webview的overrideResourceRequest方法作用一致,配置项可参考http://www.dcloud.io/docs/api/zh_cn/webview.html#plus.webview.WebviewObject.overrideResourceRequest - "overrideurl":配置应用首页的拦截链接请求处理逻辑,支持以下属性
mode:拦截模式,可取值:
"allow":表示满足match属性定义的条件时不拦截url继续加载,不满足match属性定义的条件时拦截url跳转并触发callback回调
"reject":表示满足match属性定义的提交时拦截url跳转并触发callback回调,不满足match属性定义的条件时不拦截url继续加载
默认值为"reject"。
match:匹配拦截规则,支持正则表达式,默认值为对所有URL地址生效(相当于正则表达式“.*”)。 如果mode值为"allow"则允许区配的URL请求跳转,mode值为"reject"则拦截区配的URL请求。
exclude:排除拦截理规则,可取值:
"none"表示不排除任何URL请求(即拦截处理所有URL请求)
"redirect"表示排除拦截处理301/302跳转的请求(谨慎使用,非a标签的href触发的URL请求可能会误判断为302跳转)
默认值为"none"。
confusion
应用的JS文件原生混淆配置
- “description”:原生混淆配置描述信息
- “resources”:要混淆的JS文件列表,JSON对象,以要混淆的js文件路径(相对路径)为键名,值为空JSON对象即可,如下示例:
复制代码// ... “plus”: { // ... "confusion": { "description": "JS原生混淆", "resources": { "js/common.js": { }, "js/immersed.js": { } } } // ... } // ...
iOS平台打包配置信息
在plus->distribute->apple节点下保存iOS平台打包配置信息,用于定义iOS平台专用的应用特性。
appid
Apple appid,苹果开发网站申请的appid,使用反向域名格式,如io.dcloud.hbuilder
devices
应用支持的设备类型,可取值iphone/ipad/universal,iphone表示仅支持iphone设备,安装到iPad上将使用1x/2x模式运行;ipad表示仅支持ipad设备,此模式无法安装到iphone设备;universal表示使用兼容模式,可兼容在iphone和ipad设备上正常运行,各自安装设备的分辨率运行。
UIReserveStatusbarOffset
应用的区域是否预留系统状态栏位置(应用区域通顶到系统状态栏区域),仅iOS7及以上平台有效,Boolean类型,true表示预留系统状态栏位置(不通顶),false表示不预留系统状态栏位置(通顶),默认值为true。
UIStatusBarStyle
设置状态栏的样式,可取值UIStatusBarStyleBlackTranslucent/UIStatusBarStyleDefault/UIStatusBarStyleBlackOpaque,参考iOS平台设置系统状态栏样式及背景色
StatusBarBackground
设置状态栏的背景颜色,iOS7以上系统有效,支持#RRGGBB格式,参考iOS平台设置系统状态栏样式及背景色
UIBackgroundModes
设置应用是否支持后台模式,可取值“audio”表示支持后台播放音乐,参考iOS切换到后台支持音乐播放功能
urltypes
设置应用的url schemem,参考iOS平台通过UrlSchemes与第三方应用相互调用
frameworks
设置应用要应用的系统framework,在使用native.js时使用,通知App云端打包在编译应用时引用对于的系统framework库,以便native.js能成功调用其中的API。
Android平台打包配置信息
在plus->distribute->google节点下保存Android平台打包配置信息,用于定义Android平台专用的应用特性。
packagename
应用的包名,使用反向域名格式,如io.dcloud.hbuilder
hardwareAccelerated
"Boolean类型,是否开启硬件加速,true表示开启,false表示关闭,参考Android平台配置硬件加速
custompermissions
Boolean类型,是否自定义android权限,true表示自定义权限,只使用permissions下指定的android权限,不根据用户使用的5+模块自动添加android权限,false表示自动根据用户使用的5+模块自动添加android权限。
参考Android平台指定程序使用的权限
permissions
字符串数组,要添加的Android权限列表。
参考Android平台指定程序使用的权限
schemes
字符串数据,程序需要向系统注册的urlscheme。
参考Android平台通过UrlSchemes与第三方应用相互调用
adid
广告联盟会员id,开发者向广告联盟后台申请后填写
theme
字符串,程序要使用的系统主题名称
参考Android配置应用主题皮肤
android:name
字符串,程序主入口类名,仅使用5+SDK二次扩展时用到