微信小程序区分开发版、体验版、正式版,达到自动切换开发环境、生产环境的目的,减少打包上传代码的次数。
一、实现代码:
//根据开发环境配置请求地址
// 获取当前帐号信息
const accountInfo = wx.getAccountInfoSync();
// env类型 develop:开发版、trial:体验版、release:正式版
export const env = accountInfo.miniProgram.envVersion;
if(!evn){
console.error("获取运行环境失败!");
}
const baseApi = {
// 开发版
develop: "https://test.domain.cn",
// 体验版
trial: "https://test.domain.cn",
// 正式版
release: "https://domain.cn"
};
// request请求baseURL
const SERVER_API = baseApi[env] ||'https://domain.cn';
二、相关知识:
Object wx.getAccountInfoSync()
基础库 2.2.2 开始支持,低版本需做兼容处理
获取当前帐号信息。线上小程序版本号仅支持在正式版小程序中获取,开发版和体验版中无法获取。
返回值
Object
帐号信息
属性 | 类型 | 说明 |
---|---|---|
miniProgram | Object | 小程序帐号信息 |
plugin | Object | 插件帐号信息(仅在插件中调用时包含这一项) |
miniProgram 的结构
属性 | 类型 | 说明 | 最低版本 |
---|---|---|---|
appId | string | 小程序 appId | |
envVersion | string | 小程序版本 | 2.10.0 |
version | string | 线上小程序版本号 | 2.10.2 |
miniProgram.envVersion 的合法值
值 | 说明 | 最低版本 |
---|---|---|
develop | 开发版 | |
trial | 体验版 | |
release | 正式版 |
plugin 的结构
属性 | 类型 | 说明 |
---|---|---|
appId | string | 插件 appId |
version | string | 插件版本号 |
示例代码
const accountInfo = wx.getAccountInfoSync();
console.log(accountInfo.miniProgram.appId) // 小程序 appId
console.log(accountInfo.plugin.appId) // 插件 appId
console.log(accountInfo.plugin.version) // 插件版本号, 'a.b.c' 这样的形式
*参考资料:
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/account-info/wx.getAccountInfoSync.html
https://www.jianshu.com/p/d99f3a3376e9