小程序 二、json 配置文件

一、工具配置文件 project.config.json

在工具上做的任何配置都会写入到这个文件,当你重新安装工具或者更换电脑时,只要载入同一个项目的代码包,开发者工具机会自动帮你恢复到当时你开发项目时的个性化配置,其中会包括编辑器的颜色、代码上传时自动压缩等等。

二、页面配置

每一个小程序页面也可以使用同名 .json 文件来对本页面的窗口表现进行配置,页面中配置项会覆盖 app.json 的 window 中相同的配置项。

例如:

{
  "navigationBarBackgroundColor": "#ffffff",
  "navigationBarTextStyle": "black",
  "navigationBarTitleText": "微信接口功能演示",
  "backgroundColor": "#eeeeee",
  "backgroundTextStyle": "light"
}

三、全局配置文件app.json 

可设置页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等,文件内容为一个json对象。

以下是一个包含了部分常用配置选项的 app.json :

{
  "pages": [
    "pages/index/index",
    "pages/logs/index"
  ],
  "window": {
    "navigationBarTitleText": "Demo"
  },
  "tabBar": {
    "list": [{
      "pagePath": "pages/index/index",
      "text": "首页"
    }, {
      "pagePath": "pages/logs/index",
      "text": "日志"
    }]
  },
  "networkTimeout": {
    "request": 10000,
    "downloadFile": 10000
  },
  "debug": true,
  "navigateToMiniProgramAppIdList": [
    "wxe5f52902cf4de896"
  ]
}


配置项

属性类型必填描述最低版本
pagesstring[]页面路径列表 
windowObject全局的默认窗口表现 
tabBarObject底部 tab 栏的表现 
networkTimeoutObject网络超时时间 
debugboolean是否开启 debug 模式,默认关闭 
functionalPagesboolean是否启用插件功能页,默认关闭2.1.0
subpackagesObject[]分包结构配置1.7.3
workersstringWorker 代码放置的目录1.9.90
requiredBackgroundModesstring[]需要在后台使用的能力,如「音乐播放」 
pluginsObject使用到的插件1.9.6
preloadRuleObject分包预下载规则2.3.0
resizablebooleanPC 小程序是否支持用户任意改变窗口大小(包括最大化窗口);iPad 小程序是否支持屏幕旋转。默认关闭2.3.0
usingComponentsObject全局自定义组件配置1.02.1810190
permissionObject小程序接口权限相关设置微信客户端 7.0.0
sitemapLocationstring指明 sitemap.json 的位置 
stylestring指定使用升级后的weui样式2.8.0
useExtendedLibObject指定需要引用的扩展库2.2.1
entranceDeclareObject微信消息用小程序打开微信客户端7.0.9
darkmodeboolean小程序支持 DarkMode2.11.0
themeLocationstring指明 theme.json 的位置,darkmode为true为必填开发者工具 1.03.2004271
lazyCodeLoadingstring配置自定义组件代码按需注入2.11.1

1.pages
用于指定小程序由哪些页面组成,每一项都对应一个页面的路径(含文件名)信息。文件名不需要写文件后缀,框架会自动寻找对应位置的.json、.js、.wxml、.wxss四个文件进行处理。
数组的第一项代表小程序初始页面(首页)。小程序中新增或减少页面,都需要对pages数组进行修改。
如开发目录为:

├── app.js
├── app.json
├── app.wxss
├── pages
│   │── index
│   │   ├── index.wxml
│   │   ├── index.js
│   │   ├── index.json
│   │   └── index.wxss
│   └── logs
│       ├── logs.wxml
│       └── logs.js
└── utils

则需要在 app.json 中写

{
  "pages": ["pages/index/index", "pages/logs/logs"]
}

2.window

用于设置小程序的状态栏、导航条、标题、窗口背景色。

属性类型默认值描述最低版本
navigationBarBackgroundColorHexColor#000000导航栏背景颜色,如 #000000 
navigationBarTextStylestringwhite导航栏标题颜色,仅支持 black / white 
navigationBarTitleTextstring 导航栏标题文字内容 
navigationStylestringdefault导航栏样式,仅支持以下值:
default 默认样式
custom 自定义导航栏,只保留右上角胶囊按钮。参见注 2。
微信客户端 6.6.0
backgroundColorHexColor#ffffff窗口的背景色 
backgroundTextStylestringdark下拉 loading 的样式,仅支持 dark / light 
backgroundColorTopstring#ffffff顶部窗口的背景色,仅 iOS 支持微信客户端 6.5.16
backgroundColorBottomstring#ffffff底部窗口的背景色,仅 iOS 支持微信客户端 6.5.16
enablePullDownRefreshbooleanfalse是否开启全局的下拉刷新。
详见 Page.onPullDownRefresh
 
onReachBottomDistancenumber50页面上拉触底事件触发时距页面底部距离,单位为 px。
详见 Page.onReachBottom
 
pageOrientationstringportrait屏幕旋转设置,支持 auto / portrait / landscape
详见 响应显示区域变化
2.4.0 (auto) / 2.5.0 (landscape)
  • 注 1:HexColor(十六进制颜色值),如"#ff00ff"
  • 注 2:关于navigationStyle
    • 客户端 7.0.0 以下版本,navigationStyle 只在 app.json 中生效。
    • 客户端 6.7.2 版本开始,navigationStyle: custom 对 web-view 组件无效
    • 开启 custom 后,低版本客户端需要做好兼容。开发者工具基础库版本切到 1.7.0(不代表最低版本,只供调试用)可方便切到旧视觉

如:

{
  "window": {
    "navigationBarBackgroundColor": "#ffffff",
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "微信接口功能演示",
    "backgroundColor": "#eeeeee",
    "backgroundTextStyle": "light"
  }
}

 

tabBar

如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。

属性类型必填默认值描述最低版本
colorHexColor tab 上的文字默认颜色,仅支持十六进制颜色 
selectedColorHexColor tab 上的文字选中时的颜色,仅支持十六进制颜色 
backgroundColorHexColor tab 的背景色,仅支持十六进制颜色 
borderStylestringblacktabbar 上边框的颜色, 仅支持 black / white 
listArray tab 的列表,详见 list 属性说明,最少 2 个、最多 5 个 tab 
positionstringbottomtabBar 的位置,仅支持 bottom / top 
custombooleanfalse自定义 tabBar2.5.0

其中 list 接受一个数组,只能配置最少 2 个、最多 5 个 tab。tab 按数组的顺序排序,每个项都是一个对象,其属性值如下:

属性类型必填说明
pagePathstring页面路径,必须在 pages 中先定义
textstringtab 上按钮文字
iconPathstring图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。
当 position 为 top 时,不显示 icon。
selectedIconPathstring选中时的图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。
当 position 为 top 时,不显示 icon。

networkTimeout

各类网络请求的超时时间,单位均为毫秒。

属性类型必填默认值说明
requestnumber60000wx.request 的超时时间,单位:毫秒。
connectSocketnumber60000wx.connectSocket 的超时时间,单位:毫秒。
uploadFilenumber60000wx.uploadFile 的超时时间,单位:毫秒。
downloadFilenumber60000wx.downloadFile 的超时时间,单位:毫秒。

debug

可以在开发者工具中开启 debug 模式,在开发者工具的控制台面板,调试信息以 info 的形式给出,其信息有 Page 的注册,页面路由,数据更新,事件触发等。可以帮助开发者快速定位一些常见的问题。

functionalPages

插件所有者小程序需要设置这一项来启用插件功能页

subpackages

启用分包加载时,声明项目分包结构。写成 subPackages 也支持。

workers

使用 Worker 处理多线程任务时,设置 Worker 代码放置的目录

requiredBackgroundModes

申明需要后台运行的能力,类型为数组。目前支持以下项目:

  • audio: 后台音乐播放
  • location: 后台定位

如:

{
  "pages": ["pages/index/index"],
  "requiredBackgroundModes": ["audio", "location"]
}

注:在此处申明了后台运行的接口,开发版和体验版上可以直接生效,正式版还需通过审核。

plugins

声明小程序需要使用的插件

preloadRule

声明分包预下载的规则。

resizable

在 iPad 上运行的小程序可以设置支持屏幕旋转
在 PC 上运行的小程序,用户可以按照任意比例拖动窗口大小,也可以在小程序菜单中最大化窗口

usingComponents

在此处声明的自定义组件视为全局自定义组件,在小程序内的页面或自定义组件中可以直接使用而无需再声明。

permission

小程序接口权限相关设置。字段类型为 Object,结构为:

属性类型必填默认值描述
scope.userLocationPermissionObject 位置相关权限声明

PermissionObject 结构

属性类型必填默认值说明
descstring 小程序获取权限时展示的接口用途说明。最长 30 个字符

如:

{
  "pages": ["pages/index/index"],
  "permission": {
    "scope.userLocation": {
      "desc": "你的位置信息将用于小程序位置接口的效果展示" // 高速公路行驶持续后台定位
    }
  }
}

sitemapLocation

指明 sitemap.json 的位置;默认为 'sitemap.json' 即在 app.json 同级目录下名字的 sitemap.json 文件

配置示例

{
  "pages": ["pages/index/index", "pages/logs/index"],
  "window": {
    "navigationBarTitleText": "Demo"
  },
  "tabBar": {
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页"
      },
      {
        "pagePath": "pages/logs/logs",
        "text": "日志"
      }
    ]
  },
  "networkTimeout": {
    "request": 10000,
    "downloadFile": 10000
  },
  "debug": true,
}

style

小程序也进行了基础组件的样式升级。app.json 中配置 "style": "v2"可表明启用新版的组件样式。

useExtendedLib

最新的 nightly 版开发者工具开始支持,同时基础库从支持 npm 的版本(2.2.1)起支持

指定需要引用的扩展库。目前支持以下项目:

指定后,相当于引入了对应扩展库相关的最新版本的 npm 包,同时也不占用小程序的包体积。目前暂不支持在分包中引用。用法如下:

{
  "useExtendedLib": {
    "kbone": true,
    "weui": true
  }
}

entranceDeclare

聊天位置消息用打车类小程序打开,详情参考

"entranceDeclare": {
    "locationMessage": {
        "path": "pages/index/index",
        "query": "foo=bar"
    }
}

darkmode

微信iOS客户端 7.0.12 版本、Android客户端 7.0.13 版本正式支持 DarkMode,可通过配置"darkmode": true表示当前小程序可适配 DarkMode,所有基础组件均会根据系统主题展示不同的默认样式,navigation bar 和 tab bar 也会根据开发者的配置自动切换。

配置后,请根据DarkMode 适配指南自行完成基础样式以外的适配工作。

{
  "darkmode": true
}

themeLocation

自定义 theme.json 的路径,当配置"darkmode":true时,当前配置文件为必填项。

{
  "themeLocation": "/path/to/theme.json"
}

lazyCodeLoading

通常情况下,在小程序启动期间,所有页面及自定义组件的代码都会进行注入,当前页面没有使用到的自定义组件和页面在注入后其实并没有被使用。

自基础库版本 2.11.1 起,小程序支持有选择地注入必要的代码,以降低小程序的启动时间和运行时内存。

{
  "lazyCodeLoading": "requiredComponents"
}

当配置了这一项时,小程序仅注入当前页面需要的自定义组件和页面代码,在页面中必然不会用到的自定义组件不会被加载和初始化。

注意:添加这项配置后,未使用到的代码文件将不被执行

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 小程序可以通过 wx.request() 方法来请求服务器端的 json 文件,然后通过 wx.parseJSON() 方法将返回的 json 字符串转换成 json 对象。 以下是一个示例代码: ``` wx.request({ url: 'https://example.com/data.json', success: function(res) { var data = JSON.parse(res.data); console.log(data); } }); ``` 在上面的代码中,我们先通过 wx.request() 方法请求了一个名为 data.jsonjson 文件,请求成功后将返回的数据通过 JSON.parse() 方法转换成 json 对象,并打印到控制台中。 需要注意的是,小程序只能请求 HTTPS 协议的服务器,如果请求的服务器不支持 HTTPS,则无法请求成功。同时,请求成功后应该对返回的数据进行错误处理,以保证程序的稳定性。 ### 回答2: 小程序可以接收JSON文件,接收的方式主要是通过网络请求。当小程序需要接收JSON文件时,可以使用小程序提供的API进行网络请求,将JSON文件的URL作为参数传入。 首先,小程序需要使用wx.request()方法发起网络请求。在请求的配置中,需要设置请求的地址为JSON文件的URL,并指定请求的数据类型为json。请求成功后,可以通过回调函数获取到JSON文件的数据。 例如,可以这样编写代码来实现接收JSON文件: ```javascript wx.request({ url: 'https://example.com/data.json', dataType: 'json', success: function(res) { var jsonData = res.data; // 获取JSON文件的数据 console.log(jsonData); // 打印JSON数据 }, fail: function(err) { console.log(err); // 请求失败的处理 } }) ``` 在成功回调函数中,通过res.data可以获取到JSON文件的数据。可以根据需要对数据进行处理,比如展示在小程序页面上或者做其他逻辑操作。 需要注意的是,由于小程序的网络请求是受到跨域限制的,所以在进行网络请求时需要确保JSON文件的URL与小程序的域名是允许的,可以在小程序配置文件中进行配置。 总之,小程序可以通过网络请求接收JSON文件,然后进行相应的处理和展示。以上提供了一个基本的示例代码,可以根据具体的需求进行适当的修改和扩展。 ### 回答3: 小程序是一种运行在微信平台上的轻量级应用程序,可以实现较小规模的功能。要在小程序中接收JSON文件,可以按照以下步骤进行: 1. 在小程序的页面中,首先使用wx.chooseImage或者wx.chooseFile等API选择JSON文件,获取文件的临时路径。 2. 利用临时文件路径,使用wx.getFileSystemManager().readFile()方法读取JSON文件的内容,将其转化为字符串。 3. 使用JSON.parse()方法将字符串转化为JSON对象,以便后续的数据处理和操作。 4. 根据需要,可以对JSON文件进行相关的数据处理和操作,例如提取数据、修改数据、展示数据等。 5. 最后,根据实际需求,将处理后的结果展示在小程序的页面上,或者通过wx.request等API将处理后的JSON数据发送到服务器进行进一步处理。 需要注意的是,小程序对于接收文件的大小有限制,一般最大支持10M左右的文件大小。如果JSON文件过大,可能需要进行分片上传或其他处理方式来处理。另外,小程序在接收文件时也要考虑网络连接的稳定性和文件读取的性能,以确保用户的操作体验。 总之,通过上述步骤,可以在小程序中接收JSON文件,并对其进行操作和展示,实现相应的功能需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值