收藏
回答

怎么在代码里面区分当前是开发版还是体验版或者是正式版的?

框架类型 问题类型 终端类型 微信版本 基础库版本
小程序 需求 客户端 任意版本 任意版本

刚好有这么一个社区,想问下大家是怎么在你的代码里面区分当前是开发版还是体验版或者是正式版的?

应该都会有开发的时候使用开发环境的后台接口,然后正式环境使用正式环境的后台接口这样的开发需求吧?

在网上查了一下说是用 __wxConfig.envVersion 来判断,不过据说官方否认了,说是这个只是一个临时字段。。。

所以想请问下大家是如何分环境的呢?


最后一次编辑于  2019-03-05
回答关注问题邀请回答
收藏

10 个回答

  • 禾店短剧系统
    禾店短剧系统
    2021-06-01

    function version(){

      console.log('envVersion', __wxConfig.envVersion);

      let version = __wxConfig.envVersion;

      switch (version)

      {

        case 'develop':

          return 'https://测试版环境域名';

          break;

        case 'trial':

          return 'https://体验版环境域名';

          break;

        case 'release':

          return 'https://线上环境域名';

          break;

        default:

          return 'https://测试版环境域名';

      }

    }

     

    //调用

    version();

    2021-06-01
    有用 1
    回复
  • 连胜
    连胜
    2019-03-05

    楼主,这是想把开发版、体验版、线上版用同一个服务端的环境吗?

    我们是把不同版本部署到不同的服务器,用了不同的域名,我是来看热闹的~

    2019-03-05
    有用 1
    回复 3
    • 2019-03-05

      不是,例如你这种情况,那么我是希望我可以在前端代码(js)里面去判断当前代码是跑在那个环境下的,不同环境去调用你提到的“不同域名”。


      大概例如这样

      let env = '****' // 假设有这样一个全局变量

      if(env == 开发版){

          调用开发版服务器域名接口();
      }
      else if(env == 体验版){
          调用体验版服务器域名接口();
      }
      else if(env == 线上版本){
          调用线上版服务器域名接口();
      }
      // ... other else

      所以问题就是这个 env 要怎么搞到 ...

      2019-03-05
      回复
    • 连胜
      连胜
      2019-03-05回复

      你说出了大家的心声,但是,好像并没有办法。

      有结果了,也记得提醒我一下~

      2019-03-05
      回复
    • 只杀不埋
      只杀不埋
      2021-04-16
      wx.getAccountInfoSync()区分开发板体验版线上版了解一下
      2021-04-16
      回复
  • 陈式坚
    陈式坚
    2019-03-05

    好问题,期待答案

    2019-03-05
    有用 1
    回复 1
    • 只杀不埋
      只杀不埋
      2021-04-16
      wx.getAccountInfoSync()区分开发板体验版线上版了解一下
      2021-04-16
      回复
  • 铭锋科技
    铭锋科技
    2019-03-05

    使用限制

    • 网络请求的 referer header 不可设置。其格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版、体验版以及审核版本,版本号为 devtools 表示为开发者工具,其余为正式版本;


    2019-03-05
    有用 1
    回复
  • 卢霄霄
    卢霄霄
    2019-03-05

    referer可以区分一部分

    • 网络请求的 referer header 不可设置。其格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中 {appid} 为小程序的 appid,{version} 为小程序的版本号,版本号为 0 表示为开发版、体验版以及审核版本,版本号为 devtools 表示为开发者工具,其余为正式版本;

    有完美区分的方案了记得也通知我一哈~

    2019-03-05
    有用 1
    回复 8
    • 2019-03-22

      请问referer要怎样拿到

      2019-03-22
      回复
    • 卢霄霄
      卢霄霄
      2019-03-25回复

      请求的header里,看你打算怎么用咯~

      1、可以在nginx配置http_referer识别,跳转不同的服务器

      2、可以在服务器上判断referer,然后对不同的库进行查询

      2019-03-25
      回复
    • 2019-03-25回复卢霄霄

      不能直接前端获取吗,后端有点麻烦了

      2019-03-25
      回复
    • 卢霄霄
      卢霄霄
      2019-03-25回复

      那不太清楚怎么弄了。。

      能不能后端专门弄个接口,专门返回这个referrer给前端呢,就在小程序启动的时候判断一次

      2019-03-25
      回复
    • 2019-03-25回复卢霄霄

      这样肯定可以 但是为了区分不同版本,加一条协议,就有点坑了。官方真坑,也不给个api用下

      2019-03-25
      回复
    查看更多(3)
  • 只杀不埋
    只杀不埋
    2021-04-16

    wx.getAccountInfoSync()区分开发板体验版线上版了解一下

    2021-04-16
    有用
    回复
  • 2019-05-14

    我也希望有一个判断机制,这样可以方便配置测试环境和正式环境的服务器地址。

    2019-05-14
    有用
    回复 1
    • 只杀不埋
      只杀不埋
      2021-04-16
      wx.getAccountInfoSync()区分开发板体验版线上版了解一下
      2021-04-16
      回复
  • _九张
    _九张
    2019-03-07

    留个眼  希望有方法解决   @官方

    2019-03-07
    有用
    回复 1
    • 只杀不埋
      只杀不埋
      2021-04-16
      wx.getAccountInfoSync()区分开发板体验版线上版了解一下
      2021-04-16
      回复
  • 努力努力要努力zzz
    努力努力要努力zzz
    2019-03-05

    我现在还是手动更改[笑哭]

    2019-03-05
    有用
    回复 1
    • 只杀不埋
      只杀不埋
      2021-04-16
      wx.getAccountInfoSync()区分开发板体验版线上版了解一下
      2021-04-16
      回复
  • Bn
    Bn
    2019-03-05

    有结果了麻烦通知我一哈~

    2019-03-05
    有用
    回复 1
    • 只杀不埋
      只杀不埋
      2021-04-16
      wx.getAccountInfoSync()区分开发板体验版线上版了解一下
      2021-04-16
      回复
登录 后发表内容