微信小程序区分开发环境、生产环境(开发版、体验版、正式版)

2021-01-24 09:51:48

参考地址 微信小程序区分开发环境、生产环境(开发版、体验版、正式版)

一、先说方法:wx.getAccountInfoSync()

获取当前帐号信息。线上小程序版本号仅支持在正式版小程序中获取,开发版和体验版中无法获取。
https://developers.weixin.qq.com/miniprogram/dev/api/open-api/account-info/wx.getAccountInfoSync.html

在之前官方没有提供判别方法,上线之前要手动修改请求的URL,现在可以根据wx.getAccountInfoSync()的返回值判断运行环境,自动配置REQUEST_URL,方法在最后。缺点是:要设置基础库版本。

这里注意一下基础库版本,如果用户微信版本更新不及时可能会报错,建议设置最低基础库。

wx.getAccountInfoSync返回值

envVersion类型

// 获取当前帐号信息const accountInfo = wx.getAccountInfoSync();// env类型export const env = accountInfo.miniProgram.envVersion;if(!evn){
  console.error("获取运行环境失败!");}const baseApi = {
  // 开发版
  develop: "https://test.domain.cn",
  // 体验版
  trial: "https://test.domain.cn",
  // 正式版
  release: "https://admin.domain.cn"};// request请求baseURLexport const baseURL = baseApi[env] + "/path";

二、利用 request header refer

第二种方法可以在服务端配置,根据refer区分做转发,具体根据服务nginx、node等自己查找方法即可。缺点是:增加转发服务器的请求压力



  • 2019-09-17 17:20:59

    Headless CMS 的介绍

    在本文中,我们将了解Headless CMS,我们将了解它的优点以及何时使用方便。此外,我们将列举实际的主要限制。为了更好地理解HCMS如何在幕后工作,我将解释如何设计和构建RawCMS,一个带有Oauth2的Aspnet.Core Headless CMS,扩展插件系统,业务逻辑支持。该解决方案可在GitHub上获得,并作为演示版在docker hub上发布。

  • 2019-09-17 17:21:58

    Headless CMS 详细介绍

    什么是 Headless CMS? 为什么 Headless CMS 带有真正的革命性?因为它严格的将内容和格式分离,使我们回归到内容管理的本源。这种变化必然会带来一些不确定性。因此,在开始您的第一个 CMS 项目之前,了解 Headless CMS 概念至关重要。因为它和传统的 CMS 有着本质的区别。

  • 2019-09-19 09:07:46

    @Autowired用法详解

    在使用@Autowired时,首先在容器中查询对应类型的bean     如果查询结果刚好为一个,就将该bean装配给@Autowired指定的数据     如果查询的结果不止一个,那么@Autowired会根据名称来查找。     如果查询的结果为空,那么会抛出异常。解决方法时,使用required=false

  • 2019-09-19 11:36:58

    注解@Mapper、@MapperScan

    定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类

  • 2019-09-19 11:46:45

    @EnableConfigurationProperties注解详解,源码

    用springboot开发的过程中,我们会用到@ConfigurationProperties注解,主要是用来把properties或者yml配置文件转化为bean来使用的,而@EnableConfigurationProperties注解的作用是@ConfigurationProperties注解生效。 如果只配置@ConfigurationProperties注解,在IOC容器中是获取不到properties配置文件转化的bean的,当然在@ConfigurationProperties加入注解的类上加@Component也可以使交于springboot管理。

  • 2019-09-19 14:10:03

    Android UI布局优化之ViewStub介绍

    ViewStub的inflate只能被调用一次,第二次调用会抛出异常,setVisibility可以被调用多次,但不建议这么做(文章中说原因)