`manifest.json` 文件是应用的配置文件,用于指定应用的名称、图标、权限等。 ### 配置项列表 |属性|类型|默认值|描述|最低版本| |:-|:-|:-|:-|:-| |name|String||应用名称|| |appid|String|新建 uni-app 项目时,DCloud 云端分配。用途[详见](https://ask.dcloud.net.cn/article/35907)|应用标识|| |description|String||应用描述|| |versionName|String||版本名称,例如:1.0.0。详见下方Tips说明|| |versionCode|String||版本号,例如:36|| |transformPx|Boolean|true|是否转换项目的px,为true时将px转换为rpx,为false时,px为传统的实际像素|| |networkTimeout|Object||网络超时时间,[详见](/collocation/manifest?id=networktimeout)|| |debug|Boolean|false|是否开启 debug 模式,开启后调试信息以 ``info`` 的形式给出,其信息有页面的注册,页面路由,数据更新,事件触发等|| |app-plus|Object||[5+App 特有配置](/collocation/manifest?id=app-plus)|| |h5|Object||[H5 特有配置](/collocation/manifest?id=h5)|| |quickapp|Object||快应用特有配置,即将支持|| |mp-weixin|Object||[微信小程序特有配置](/collocation/manifest?id=mp-weixin)|| |mp-alipay|Object||[支付宝小程序未提供可配置项](/collocation/manifest?id=mp-alipay)| |mp-baidu|Object||[百度小程序特有配置](/collocation/manifest?id=mp-baidu)|| |mp-toutiao|Object||[头条小程序特有配置](/collocation/manifest?id=mp-toutiao)|1.6.0| |mp-qq|Object||[qq 小程序特有配置](/collocation/manifest?id=mp-qq)|2.1.0| **Tips** - uni-app 的 `appid` 由 DCloud 云端分配,主要用于 DCloud 相关的云服务,请勿自行修改。[详见](https://ask.dcloud.net.cn/article/35907) - 注意区分 uni-app 的 `appid` 与微信小程序、iOS 等其它平台分配的 `appid`,以及第三方 SDK 的 `appid`。 - versionName在云打包App和生成wgt应用资源时会使用。如需升级App版本,先修改此处再云打包。导出wgt资源用于离线打包和热更新时也会以此版本为依据。 - 在本地打包时和热更新时,App版本和wgt应用资源版本将不再保持一致。此时通过[plus.runtime.version](https://www.html5plus.org/doc/zh_cn/runtime.html#plus.runtime.version)可获取App版本,通过[plus.runtime.getProperty](https://www.html5plus.org/doc/zh_cn/runtime.html#plus.runtime.getProperty)获取wgt资源版本。 #### networkTimeout 各类网络请求的超时时间,单位均为毫秒。 |属性|类型|必填|默认值|说明| |--|--|--|--|--| |request|Number|否|6000|uni.request 的超时时间,单位毫秒。| |connectSocket|Number|否|6000|uni.connectSocket 的超时时间,单位毫秒。| |uploadFile|Number|否|6000|uni.uploadFile 的超时时间,单位毫秒。| |downloadFile|Number|否|6000|uni.downloadFile 的超时时间,单位毫秒。| ### app-plus |属性|类型|说明|最低版本| |:-|:-|:-|:-| |splashscreen|Object|5+App 启动界面信息,[详见](/collocation/manifest?id=splashscreen)|| |modules|Object|权限模块,[详见](/collocation/manifest?id=modules)|| |distribute|Object|5+App 发布信息,[详见](/collocation/manifest?id=distribute)|| |usingComponents|Boolean|是否启用自定义组件模式,默认为false,[编译模式区别详情](https://ask.dcloud.net.cn/article/35843)|1.9.0| |nvueCompiler|String|切换 nvue 编译模式,可选值,`weex` :老编译模式,`uni-app`: 新编译模式,默认为 `weex` 。[编译模式区别详情](http://ask.dcloud.net.cn/article/36074)|2.0.3 Alpha| |nvue|Object|nvue 页面布局初始配置,[详见](/collocation/manifest?id=nvue)|2.0.3 Alpha| PS:这里只列出了核心部分,更多内容请参考 [完整的 manifest.json](/collocation/manifest?id=完整-manifestjson)。 **Tips** - manifest.json 文件的配置,推荐在 HBuilderX 提供的可视化操作界面完成。 - 部分配置在打包时的操作界面补全,例如:证书等信息。 - Native.js 权限部分会根据配置的模块权限,在打包后自动填充。 - 部分 modules 是默认的,不需要进行配置。 - 微信小程序的 `appid` 等信息,需要配置在 `mp-weixin` 节点下。`sdkConfigs` 下出现的 `weixin` 节点,配置的是 5+ App 的第三方 SDK 信息。 #### App Splashscreen@splashscreen splash(启动封面)是App必然存在的、不可取消的。 |属性|类型|默认值|描述|最低版本| |:-|:-|:-|:-|:-| |alwaysShowBeforeRender|Boolean|true|首页白屏时不关闭启动界面|1.6.0| |autoclose|Boolean|true|是否自动关闭程序启动界面。如果需要手动关闭启动界面,需将 alwaysShowBeforeRender 及 autoclose 均设置为 false。|| |waiting|Boolean|true|是否在程序启动界面显示等待圈或雪花|| |delay|Number|0|启动界面在应用的首页面加载完毕后延迟关闭的时间,autoclose 为 true 时生效。| | **注意** - 如果不配置自己的splash图,App端会默认把App的icon放到splash中 - splash只能是标准png,不要用jpg改名为png。也不支持gif等动画 - 相关改动,云打包生效,真机运行不生效。本地打包需自行在原生工程中配置 - App启动图中iOS的MAX等大屏设备的splash图若不配,会导致iOS认为此App没有为MAX优化,App将无法全屏,四周会有黑边 - Android的splash支持.9.png,[详见](https://ask.dcloud.net.cn/article/35527) #### App Modules@modules 模块选择是为了控制App的包体积,不需要的模块可以在打包时剔除。 |名称|描述| |:-|:-| |Bluetooth|BLE蓝牙| |Contacts|系统通讯录| |Fingerprint|指纹识别| |iBeacon|iBeacon| |LivePusher|直播推流| |Maps|地图| |Messaging|短彩邮件消息| |OAuth|登录授权| |Payment|支付| |Push|消息推送| |Share|社交分享| |Speech|语音识别| |SQLite|SQLite数据库| |Statistic|统计| |VideoPlayer|视频播放| **注意** - 仅App云打包生效。本地打包需自行在原生工程中配置。 - #### App Distribute@distribute |属性|类型|描述| |:-|:-|:-| |android|Object|Android 应用配置,详见: [完整 manifest.json](/collocation/manifest?id=完整-manifestjson)| |ios|Object|iOS 应用配置,详见: [完整 manifest.json](/collocation/manifest?id=完整-manifestjson)| |sdkConfigs|Object|SDK配置,仅打包生效 [详见](/collocation/manifest?id=sdkConfigs)| |orientation|Array|重力感应、横竖屏配置,可取值:"portrait-primary":竖屏正方向;"portrait-secondary":竖屏反方向;"landscape-primary":横屏正方向;"landscape-secondary":横屏反方向。| ##### App SdkConfigs@sdkConfigs 三方原生SDK配置。三方SDK的使用需要向这些SDK提供商申请,并配置参数到此处。可在HBuilderX可视化界面(App SDK配置)输入配置,此配置仅**云打包后生效**,本地打包需自行在原生工程中配置。 |属性|类型|描述| |:-|:-|:-| |oauth|Object|授权登录,配置后可调用 [uni.login](/api/plugins/login?id=login) 进行登录操作,目前支持的授权登录平台有:[QQ](http://open.qq.com/)、[微信](https://open.weixin.qq.com/)、[新浪微博](http://open.weibo.com/)。| |share|Object|分享,配置后可调用 [uni.share](/api/plugins/share?id=share) 进行分享,目前支持QQ、微信、新浪微博等分享, 具体配置 [详见](/api/plugins/share?id=app-端各平台分享配置说明)。| |push|Object|push配置,使用方式 [详见](http://ask.dcloud.net.cn/article/34),目前支持:[uniPush](http://ask.dcloud.net.cn/article/35716)、[个推](http://www.igetui.com/)、[小米推送](https://dev.mi.com/console/appservice/push.html),注意App仅支持一种 push 方式,配置多个 push 无效,建议使用 uniPush,支持多厂商推送。| |payment|Object|三方支付配置,配置后可调用 [uni.payment](/api/plugins/payment?id=payment) 进行支付,目前支持微信支付、支付宝支付、苹果内购, 具体配置 [详见](/api/plugins/payment?id=uni-app-app-平台支付流程)。| |statics|Object|统计配置,目前仅支付友盟统计,[详见](http://ask.dcloud.net.cn/article/74),在uni-app中只用 [plus.statistic](http://www.html5plus.org/doc/zh_cn/statistic.html) 进行调用。| |speech|Object|语音识别配置,支持讯飞语音、百度语音,[详见](http://ask.dcloud.net.cn/article/35059),在uni-app中只用 [plus.speech](http://www.html5plus.org/doc/zh_cn/speech.html) 进行调用。| |maps|Object|原生地图配置,目前仅支持 [高德地图](http://lbs.amap.com/),申请方式可参考:[地图插件配置](http://ask.dcloud.net.cn/article/29)。| #### nvue@nvue `nvue` 页面布局初始设置 |属性|类型|描述| |:-|:-|:-| |flex-direction|String| flex 成员项的排列方向,支持项,row:从左到右; row-reverse:从下到上;column:从上到下;column-reverse:与 row 相反,默认值 column。| ### h5 |属性|类型|说明| |:-|:-|:-| |title|String|页面标题,默认使用 manifest.json 的 name| |template|String|index.html模板路径,相对于应用根目录,可定制生成的 html 代码。参考:[自定义模板](collocation/manifest?id=h5-template)| |router|Object|参考:[router](collocation/manifest?id=h5-router)| |async|Object|参考:[async](collocation/manifest?id=h5-async)| |devServer|Object|开发环境 server 配置,参考:[devServer](collocation/manifest?id=devserver)| |publicPath|String|引用资源的地址前缀,仅发布时生效。参考:[publicPath](collocation/manifest?id=publicPath)| |sdkConfigs|String|SDK配置,例如地图... 参考:[sdkConfigs](collocation/manifest?id=h5sdkconfig)| |optimization|Object|打包优化配置(HBuilderX 2.1.5 以上支持),参考[optimization](collocation/manifest?id=optimization)| #### 自定义模板@h5-template 需要使用自定义模板的场景,通常有以下几种情况: - 调整页面 head 中的 meta 配置 - 补充 SEO 相关的一些配置(仅首页) - 加入百度统计等三方js 使用自定义模板时,1. 工程根目录下新建一个html文件;2. 复制下面的基本模板内容,到这个html文件,在此基础上修改meta和引入js;3. 在 `manifest.json->h5->template` 节点中关联这个html文件的路径。 ```html <%= htmlWebpackPlugin.options.title %>
``` 在hello uni-app示例中有一个`template.h5.html`文件,即是此用途。 **关于SEO的补充说明** H5平台是SPA单页应用,普通的SEO信息即加meta字段只能在,自定义的模板html里配置首页。 但SEO的时代在变,现在更有效的方式,是用uni-app同时发布一版百度小程序,这个搜索权重更高。DCloud的ask社区的H5版也是uni-app做的,同时发布了百度小程序,权重更高,每天来自百度的搜索量非常多。是一个可现身说法的好案例。 #### router@h5-router |属性|类型|默认值|说明| |:-|:-|:-|:-| |mode|String|hash|路由跳转模式,支持 hash、history| |base|String|/|应用基础路径,例如,如果整个单页应用服务在 /app/ 下,然后 base 就应该设为 "/app/"| **注意:**`history` 模式发行需要后台配置支持,详见:[history 模式的后端配置](https://router.vuejs.org/zh/guide/essentials/history-mode.html#%E5%90%8E%E7%AB%AF%E9%85%8D%E7%BD%AE%E4%BE%8B%E5%AD%90) #### async@h5-async |属性|类型|默认值|说明| |:-|:-|:-|:-| |loading|String|AsyncLoading|页面 js 加载时使用的组件(需注册为全局组件)| |error|String|AsyncError|页面 js 加载失败时使用的组件(需注册为全局组件)| |delay|Number|200|展示 loading 加载组件的延时时间(页面 js 若在 delay 时间内加载完成,则不会显示 loading 组件)| |timeout|Number|3000|页面 js 加载超时时间(超时后展示 error 对应的组件)| #### devServer |属性|类型|默认值|说明| |:-|:-|:-|:-| |https|Boolean|false|启用 https 协议| |disableHostCheck|Boolean|false|禁用 Host 检查| Tips:`uni-app` 中 `manifest.json->h5->devServer` 实际上对应 `webpack` 的 [devServer](https://webpack.js.org/configuration/dev-server/),鉴于 manifest 为 json 文件,故 `webpack.config.js->devServer` 配置项下的简单类型属性均可在`manifest.json->h5->devServer`节点下配置,funciton 等复杂类型暂不支持。 #### publicPath 配置 publicPath 为 cdn 资源地址前缀,这样编译出来的 html 文件,引用的 js,css 路径会自动变成 cdn 上的地址。 **示例** 以 hello-uniapp 发布 H5 时为例 未配置 publicPath 时,发布时 index.html 中的结果: ```html