技术栈:Uniapp
简介
在实际开发过程中,会需要根据当前的版本切换到对应的环境(测试、正式),如果每次开发者手动改路径,出错率比较高,于是就需要自动适配。(但是微信审核的时候,可能会因为不是正式版本的数据而驳回)
实现
主要有以下几种方法:
- 自定义环境配置 package.json
- uni.getAccountInfoSync().miniProgram.envVersion
- wx.getAccountInfoSync().miniProgram.envVersion (只支持微信小程序)
- __wxConfig.envVersion (只支持微信小程序)
第一种方式,配置好后,即可自动切换数据。
剩下的三种都是根据获取的环境进行判断 导出,其他地方进行使用即可,
envVersion 版本值
- release(正式版)
- develop(开发版)
- trial(体验版)
实际实现,例如:
const prodOss = 'https://prod.com/oss/';
const devOss = 'https://dev.com/oss/';
export const OssUrl = uni.getAccountInfoSync().miniProgram.envVersion == 'release' ? prodOss : devOss;
import { OssUrl } from '@config/index.js'
// 获取图片路径
export const getImgUrl = (path) => {
return OssUrl + path;
}
自定义环境配置 package.json
可参考 uniapp微信小程序端:自定义环境配置以及线上版、体验版自动环境切换配置,配置 package.json 实现自动切换。
具体实现,本人未尝试过,仅提供参考。
uni.getAccountInfoSync
官方参考文档:uni.getAccountInfoSync() | uni-app官网
此接口中,
使用 uni.getAccountInfoSync() ,会返回包含 miniProgram 小程序对象和 plugin 插件对象的数据,miniProgram.envVersion 即当前小程序环境版本信息。
uni.getAccountInfoSync() 返回的数据如下图:

wx.getAccountInfoSync
官方参考文档:Object wx.getAccountInfoSync() | 微信开放文档
使用 wx.getAccountInfoSync()(仅支持微信小程序) ,会返回包含 miniProgram 对象的数据,miniProgram.envVersion 即当前小程序环境版本信息。
wx.getAccountInfoSync() 返回的数据如下图:

__wxConfig
根据查阅其他资料,在微信小程序情况下,发现也可使用 __wxConfig 查询小程序参数信息,相比 getAccountInfoSync,信息会更多更全,不过用 getAccountInfoSync 已经足够了。
__wxConfig 返回的数据如下图:


&spm=1001.2101.3001.5002&articleId=145268323&d=1&t=3&u=813b1cb39da145ec90f75fd9cd3fe00b)

被折叠的 条评论
为什么被折叠?



