在使用uniapp做跨端开发时,需要对不同的app做单点登录,
第一种情况:
例如同一套代码部署在不同服务器下,但是有不同的H5,比如说App1下需要一套h5代码,App2下需要部署另一套h5代码,由于uniapp下没有对不同的H5做区分,所以我们需要新建命令来区分不同的h5,并在代码中做区分。
1.在package.json中新增配置
"scripts": {
"h5-and": {
"title": "and-H5",
"BROWSER": "Chrome",
"env": {
"UNI_PLATFORM": "h5",
"tenant": "dandian"
},
"define": {
"H5-AND": true
}
},
"h5-wst": {
"title": "wst-H5",
"BROWSER": "Chrome",
"env": {
"UNI_PLATFORM": "h5",
"tenant": "dandian"
},
"define": {
"H5-WST": true
}
}
}
}
2.在package.json中配置命令,将刚刚新增的配置分别设置打包和运行的命令
"dev:h5-and": "cross-env NODE_ENV=development uniapp-cli custom h5-and",
"dev:h5-wst": "cross-env NODE_ENV=development uniapp-cli custom h5-wst",
"build:h5-and": "cross-env NODE_ENV=production uniapp-cli custom h5-and",
"build:h5-wst": "cross-env NODE_ENV=production uniapp-cli custom h5-wst",
3.在代码中使用添加的条件编译
//#ifdef H5-AND
params.type = "AND";
//#endif
//#ifdef H5-WST
params.type = "WST";
//#endif
4.配置好之后,在打包和运行项目时可以看到新增的命令
第二种情况:
同一套代码需要部署到相同的服务器下的不同目录(区分测试环境和正式环境),这时我们在打包之后的代码就需要在不同的目录下
上面的base就是我们打包后的文件目录配置,比如说我们的测试环境为服务器下的h4目录,正式为h5目录,那么每次打包的时候都需要手动改变这个base值,再npm run build:h5
解决办法:在执行打包命令时先更改这个base值,
changeBase.js就是用来修改base值的文件,放在根目录下
执行npm run build:h4,查看打包后的文件路径
可以看到base值已经改成h4了
可以看到打包后的资源在h4的目录下
第三种情况: 同一套代码部署到同一个服务器下的同一个目录,这种情况在进入网页时,在链接上拼一个参数用来标识平台