1. 程式人生 > 其它 >1.微信小程式區分 開發、體驗(測試)、生產環境

1.微信小程式區分 開發、體驗(測試)、生產環境


無論前端還是後端在日常開發中,專案裡一般都會區分 開發、測試、生產這三個環境(有的還有預釋出、灰度釋出),這樣預先寫好不同環境的配置資訊,簡直是一勞永逸

微信小程式
wx.getAccountInfoSync()
在微信小程式開發中可以用這個方法,檢視官方文件 瞭解到Object wx.getAccountInfoSync() 這個Api

在下面 返回值引數介紹中 有寫 miniProgram一項 在miniProgram.envVersion 中的合法值為

develop 開發版
trial 體驗版
release 正式版

用這個api 就可以區分三種環境 列印結果如下

console.log(wx.getAccountInfoSync())
// {
// miniProgram: {
// appId: "************"
// envVersion: "develop"
// version: "" // 線上小程式版本號僅支援在正式版小程式中獲取,開發版和體驗版中無法獲取。
// }
// }

專案獲取請求地址可以用這個值區分

const env = wx.getAccountInfoSync().miniProgram.envVersion

const baseApi = {
// 開發版
develop: "https://xxx.com",
// 體驗版
trial: "https://xxx.com",
// 正式版
release: "https://xxx.com"
};
const api = baseApi[env]
export default api;

__wxConfig
另外還有一個隱藏的內部變數 ** __wxConfig** 裡面涉及到很多資訊大概如下

console.log(__wxConfig)
// {
// envVersion: "develop",
// accountInfo: {
// appId: "*****"
// icon: "http://*****"
// nickname: "***"
// },
// brand:'**',// 手機品牌(執行在手機上預覽和正式環境才有)
// platform: "devtools" // 當前執行系統 android|ios ..
// ...
// }

可以看到 其中也有包含當前所處環境的變數envVersion

所以上穩重 constenv = wx.getAccountInfoSync().miniProgram.envVersion 可以改為如下

const env = __wxConfig.envVersion
複製程式碼
[請移步到官方文件中去看看](https://uniapp.dcloud.io/frame?id=%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83%e5%92%8c%e7%94%9f%e4%ba%a7%e7%8e%af%e5%a2%83)
uniapp