如何修改配置
在小程序项目里面,分为:
小程序 —— 项目配置
可以在项目根目录使用 project.config.json
文件对项目进行配置。
配置示例:
{
"miniprogramRoot": "./src",
"debugOptions": {}
}
小程序 —— 全局配置
小程序根目录下的 app.json
文件用来对微信小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等
配置示例:
{
"pages": ["pages/index/index", "pages/logs/index"],
"window": {
"navigationBarTitleText": "Demo"
},
"networkTimeout": {
"request": 10000,
"downloadFile": 10000
}
}
小程序 —— 页面配置
每一个小程序页面也可以使用 .json
文件来对本页面的窗口表现进行配置。
页面的配置只能设置 app.json
中部分 window
配置项的内容,页面中配置项会覆盖 app.json
的 window
中相同的配置项。
配置示例:
{
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "微信接口功能演示",
"backgroundColor": "#eeeeee",
"backgroundTextStyle": "light"
}
同样,在 cml
项目里面,分为:
cml —— 项目配置
chameleon.config.js
为项目的配置文件,你可以定制化构建,比如是否带 hash,是否 压缩等等。
配置示例:
// 设置静态资源的线上路径
const publicPath = "//www.static.chameleon.com/static";
// 设置api请求前缀
const apiPrefix = "https://api.chameleon.com";
// 合并配置
cml.config.merge({
wx: {
build: { apiPrefix }
},
alipay: {
build: { apiPrefix }
},
baidu: {
build: { apiPrefix }
},
web: {
dev: {
hot: true,
console: true
},
build: {
publicPath: `${publicPath}/web`,
apiPrefix
}
},
weex: {
build: {
publicPath: `${publicPath}/weex`,
apiPrefix
}
}
});
cml —— 全局配置
cml
项目 app
目录下的 app.cml
文件的 <script cml-type="json" />
用来对 cml
应用 进行全局配置,具有 跨端配置 和 差异化 的能力
配置示例:
<script cml-type="json">
{
"base": {
"window": {
"navigationBarTitleText": "各个端共同title",
},
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
}
},
"wx": {
"window": {
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "差异化 title",
"navigationBarTextStyle":"black"
}
},
"baidu": {
"window": {
"backgroundTextStyle": "light"
}
},
"alipay": {
"window": {
"defaultTitle": "Chameleon"
}
}
}
</script>
cml —— 页面/组件配置
通过 usingComponents
配置 组件路径
注册引用的组件。
配置示例:
<script cml-type="json">
{
"base": {
"usingComponents": {
"navi": "/components/navi/navi",
"navi-npm": "cml-test-ui/navi/navi"
}
},
"wx": {
},
"alipay": {
},
"baidu": {
},
"web": {
},
"weex": {
}
}
</script>
如何使用路由能力
小程序配置路由
app.json 配置项列表的 pages
字段用于指定小程序由哪些页面组成,每一项都对应一个页面的 路径+文件名
信息。
数组的第一项代表小程序的初始页面(首页)。新增/减少页面,需要对 pages
数组进行修改。
如果项目有 pages/index/index.wxml
、pages/logs/logs.wxml
两个页面,则需要在 app.json
中写
{
"pages": ["pages/index/index", "pages/logs/logs"]
}
cml 配置路由
src/router.config.json 是路由的配置文件,cml
内置了一套各端统一的路由管理方式。相应有 cml
路由配置映射如下:
{
"mode": "history",
"domain": "https://www.chameleon.com",
"routes":[
{
"url": "/cml/h5/index",
"path": "/pages/index/index",
"mock": "index.php"
},
{
"url": "/cml/h5/logs",
"path": "pages/logs/logs",
"mock": "logs.php"
}
]
}
文件名不需要写文件后缀,cml
框架会自动去寻找对于位置的 .cml
文件进行处理。
小程序使用路由
- 打开新页面:调用 API wx.navigateTo
- 页面重定向:调用 API wx.redirectTo
- 页面返回:调用 API wx.navigateBack
- 打开另一个小程序:调用 API wx.navigateToMiniProgram
- 返回到上一个小程序:调用 API wx.navigateBackMiniProgram
cml 使用路由
依据统一资源索引 URI,自适应打开不同环境同一路由 PATH:
- 打开新页面:调用 chameleon-api cml.navigateTo
- 页面重定向:调用 chameleon-api cml.redirectTo
- 页面返回:调用 chameleon-api cml.navigateBack
- 打开另一个跨端应用:调用 chameleon-api cml.open
- 返回到上一个跨端应用:调用 chameleon-api cml.close