移动APP配置文件 manifest.json 讲解 (附视频)
Manifest.json文件是5+移动App的配置文件,用于指定应用的显示名称、图标、应用入口文件地址及需要使用的设备权限等信息,用户可通过HBuilder的可视化界面视图或者源码视图来配置5+移动App的信息。
Manifest.json文件根据w3c的webapp规范制定,plus节点下内容为HTML5Plus扩展规范,其下包括iOS和Android子节点,内容来源分别为iOS和Android原生打包所要求的参数,用于对5+移动App打包为ipa或apk安装包进行配置。
manifest.json 默认生成的格式
上面介绍了manifest.json文件的常用配置信息,下面是一些5+ APP特有或根据平台特性补充的一些配置信息。在HBuilder中需打开manifest.json文件并切换到“代码视图”进行手动配置。
{
"@platforms": ["android", "iPhone", "iPad"],
"id": "H564C0665",/*应用的标识,创建应用时自动生成,勿手动修改*/
"name": "你好啊",/*应用名称,程序桌面图标名称*/
"version": {
"name": "1.0",/*应用版本名称*/
"code": "83" /*"必选,版本代号,填写数值,随便填写,每一个新版本数值要比之前的大,上架安卓市场,很多是根据它来判断版本号的"*/
},
"description": "",/*应用描述信息*/
"icons": {
"72": "icon.png" /*"可选,应用图标的路径,可以放多种分辨率"*/
},
"launch_path": "index.html",/*应用的入口页面,默认为根目录下的index.html;支持网络地址,必须以http://或https://开头*/
"developer": {
"name": "",/*开发者名称*/
"email": "",/*开发者邮箱地址*/
"url": ""/*开发者个人主页地址*/
},
"permissions": {
"Messaging":{
"description": "短彩邮件插件"
},
"Cache": {
"description": "管理应用缓存"
},
"Console": {
"description": "跟踪调试输出日志"
},
"Contacts": {
"description": "访问系统联系人信息"
},
"Events": {
"description": "应用扩展事件"
},
"Maps": {
"description": "管理地图插件"
},
"Speech": {
"description": "管理语音识别插件"
}
},
"plus": {
"splashscreen": {
"autoclose": true,/*是否自动关闭程序启动界面,true表示应用加载应用入口页面后自动关闭;false则需调plus.navigator.closeSplashscreen()关闭*/
"waiting": true/*是否在程序启动界面显示等待雪花,true表示显示,false表示不显示。*/
},
"popGesture": "close",/*设置应用默认侧滑返回关闭Webview窗口,"none"为无侧滑返回功能,"hide"为侧滑隐藏Webview窗口。参考http://ask.dcloud.net.cn/article/102*/
"runmode": "normal",/*应用的首次启动运行模式,可取liberate或normal,liberate模式在第一次启动时将解压应用资源(Android平台File API才可正常访问_www目录)*/
"signature": "Sk9JTiBVUyBtYWlsdG86aHIyMDEzQGRjbG91ZC5pbw==",/*可选,保留给应用签名,暂不使用*/
"distribute": {
"apple": {
"appid": "",/*iOS应用标识,苹果开发网站申请的appid,如io.dcloud.HelloH5*/
"mobileprovision": "",/*iOS应用打包配置文件*/
"password": "",/*iOS应用打包个人证书导入密码*/
"p12": "",/*iOS应用打包个人证书,打包配置文件关联的个人证书*/
"devices": "universal",/*iOS应用支持的设备类型,可取值iphone/ipad/universal*/
"frameworks":[
]/*调用Native.js调用原生Objective-c API需要引用的FrameWork,如需调用GameCenter,则添加"GameKit.framework"*/
},
"google": {
"packagename": "",/*Android应用包名,如io.dcloud.HelloH5*/
"keystore": "",/*Android应用打包使用的密钥库文件*/
"password": "",/*Android应用打包使用密钥库中证书的密码*/
"aliasname": "",/*Android应用打包使用密钥库中证书的别名*/
"permissions": ["<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>","<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>","<uses-permission android:name="android.permission.READ_CONTACTS"/>","<uses-permission android:name="android.permission.VIBRATE"/>","<uses-permission android:name="android.permission.READ_LOGS"/>","<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>","<uses-feature android:name="android.hardware.camera.autofocus"/>","<uses-permission android:name="android.permission.WRITE_CONTACTS"/>","<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>","<uses-permission android:name="android.permission.CAMERA"/>","<uses-permission android:name="android.permission.RECORD_AUDIO"/>","<uses-permission android:name="android.permission.GET_ACCOUNTS"/>","<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>","<uses-permission android:name="android.permission.READ_PHONE_STATE"/>","<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>","<uses-permission android:name="android.permission.WAKE_LOCK"/>","<uses-permission android:name="android.permission.CALL_PHONE"/>","<uses-permission android:name="android.permission.FLASHLIGHT"/>","<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>","<uses-feature android:name="android.hardware.camera"/>","<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>","<uses-permission android:name="android.permission.WRITE_SETTINGS"/>"]
/*使用Native.js调用原生安卓API需要使用到的系统权限*/
},
"orientation": [
"portrait-primary"
],/*应用支持的方向,portrait-primary:竖屏正方向;portrait-secondary:竖屏反方向;landscape-primary:横屏正方向;landscape-secondary:横屏反方向*/
"icons": {
"ios": {
"prerendered": true, /*应用图标是否已经高亮处理,在iOS6及以下设备上有效*/
"auto": "", /*应用图标,分辨率:512x512,用于自动生成各种尺寸程序图标*/
"iphone": {
"normal": "", /*iPhone3/3GS程序图标,分辨率:57x57*/
"retina": "", /*iPhone4程序图标,分辨率:114x114*/
"retina7": "", /*iPhone4S/5/6程序图标,分辨率:120x120*/
"retina8": "", /*iPhone6 Plus程序图标,分辨率:180x180*/
"spotlight-normal": "", /*iPhone3/3GS Spotlight搜索程序图标,分辨率:29x29*/
"spotlight-retina": "", /*iPhone4 Spotlight搜索程序图标,分辨率:58x58*/
"spotlight-retina7": "", /*iPhone4S/5/6 Spotlight搜索程序图标,分辨率:80x80*/
"settings-normal": "", /*iPhone4设置页面程序图标,分辨率:29x29*/
"settings-retina": "", /*iPhone4S/5/6设置页面程序图标,分辨率:58x58*/
"settings-retina8": "" /*iPhone6Plus设置页面程序图标,分辨率:87x87*/
},
"ipad": {
"normal": "", /*iPad普通屏幕程序图标,分辨率:72x72*/
"retina": "", /*iPad高分屏程序图标,分辨率:144x144*/
"normal7": "", /*iPad iOS7程序图标,分辨率:76x76*/
"retina7": "", /*iPad iOS7高分屏程序图标,分辨率:152x152*/
"spotlight-normal": "", /*iPad Spotlight搜索程序图标,分辨率:50x50*/
"spotlight-retina": "", /*iPad高分屏Spotlight搜索程序图标,分辨率:100x100*/
"spotlight-normal7": "",/*iPad iOS7 Spotlight搜索程序图标,分辨率:40x40*/
"spotlight-retina7": "",/*iPad iOS7高分屏Spotlight搜索程序图标,分辨率:80x80*/
"settings-normal": "",/*iPad设置页面程序图标,分辨率:29x29*/
"settings-retina": "" /*iPad高分屏设置页面程序图标,分辨率:58x58*/
}
},
"android": {
"mdpi": "", /*普通屏程序图标,分辨率:48x48*/
"ldpi": "", /*大屏程序图标,分辨率:48x48*/
"hdpi": "", /*高分屏程序图标,分辨率:72x72*/
"xhdpi": "",/*720P高分屏程序图标,分辨率:96x96*/
"xxhdpi": ""/*1080P 高分屏程序图标,分辨率:144x144*/
}
},
"splashscreen": {
"ios": {
"iphone": {
"default": "", /*iPhone3启动图片选,分辨率:320x480*/
"retina35": "",/*3.5英寸设备(iPhone4)启动图片,分辨率:640x960*/
"retina40": "",/*4.0 英寸设备(iPhone5/iPhone5s)启动图片,分辨率:640x1136*/
"retina47": "",/*4.7 英寸设备(iPhone6)启动图片,分辨率:750x1334*/
"retina55": "",/*5.5 英寸设备(iPhone6 Plus)启动图片,分辨率:1242x2208*/
"retina55l": ""/*5.5 英寸设备(iPhone6 Plus)横屏启动图片,分辨率:2208x1242*/
},
"ipad": {
"portrait": "", /*iPad竖屏启动图片,分辨率:768x1004*/
"portrait-retina": "",/*iPad高分屏竖屏图片,分辨率:1536x2008*/
"landscape": "", /*iPad横屏启动图片,分辨率:1024x748*/
"landscape-retina": "", /*iPad高分屏横屏启动图片,分辨率:2048x1496*/
"portrait7": "", /*iPad iOS7竖屏启动图片,分辨率:768x1024*/
"portrait-retina7": "",/*iPad iOS7高分屏竖屏图片,分辨率:1536x2048*/
"landscape7": "", /*iPad iOS7横屏启动图片,分辨率:1024x768*/
"landscape-retina7": ""/*iPad iOS7高分屏横屏启动图片,分辨率:2048x1536*/
}
},
"android": {
"mdpi": "", /*普通屏启动图片,分辨率:240x282*/
"ldpi": "", /*大屏启动图片,分辨率:320x442*/
"hdpi": "", /*高分屏启动图片,分辨率:480x762*/
"xhdpi": "", /*720P高分屏启动图片,分辨率:720x1242*/
"xxhdpi": ""/*1080P高分屏启动图片,分辨率:1080x1882*/
}
}
}
},
,
"dependencies":{ /*页面引入关系,不用理它,自动生成的*/
"pages": {
"index.html": {
"href": "index.html",
"priority": 0
}
},
"idle": {}
}
}
以上是Manifest.json 生成的是默认的配置项:介绍下比较常用一些额外配置,Manifest.json 配置是全局的,针对整个APP生效
在节点“plus”下配置
当设置"immersed": "supportedDevice" 都是沉浸式状态栏状态,就是手机状态栏那一点位置,也被应用点用
"statusbar": {
"immersed": "none|suggestedDevice|supportedDevice,沉浸式状态栏情况",
"style": "dark|light, 系统状态栏样式",
"background": "#RRGGBB格式字符串,系统状态栏背景颜色"
}
"popGesture": "close", /*对IOS有用,是否开启右滑关闭页面*/
"error": {
"url": "error.html" /*设置页面出错时,显示的错误404页面*/
}
"allowsInlineMediaPlayback": true /*对IOS应用有效, 当需要用到VIDEO播放时,设置不让视频自动弹出播放*/
"google": {
"schemes": "appname" /*对安卓有效,给APP起个别名,用于第三方应用可以根据这个调起应用*/
"hardwareAccelerated":true /*对安卓有效, 开启硬件加速, 当你的应用需要用到视频播放时,需要开启这个,也可以单个页面开启*/
}
/*针对IOS有效*/
"apple": {
"urltypes": [
{
"urlidentifier": "com.xxxx.xxxx", /*APP包名*/
"urlschemes": [
"appname" /*APP别名*/
]
}
], /*IOS应用权限配置*/
"plistcmds": [
"Set :NSContactsUsageDescription 需要您同意才能获得您的通信录,获得通信录用于获取关联相关好友 允许吗?",
"Set :NSMicrophoneUsageDescription 需要您同意才能录音发语音消息,允许吗?",
"Set :NSPhotoLibraryUsageDescription 需要您同意才能获取到相册照片,照片用于发布信息,允许吗?",
"Set :NSCameraUsageDescription 需要您同意才能扫一扫商品或拍摄其他照片,允许吗?",
"Set :NSPhotoLibraryAddUsageDescription 需要您同意才能添加相片到图库,允许吗?",
"Set :NSLocationAlwaysUsageDescription 需要您同意才能获得您的地理位置,为您更便捷获得您所在城市的资讯,允许吗?",
"Set :NSLocationWhenInUseUsageDescription 获得地理位置,为您更便捷获得你所在城市的资讯,允许吗?"
]
}
配置需要,根据应用实际情况,需要用到那些,配置那些
视频播放
加载更多