侧边栏壁纸
博主头像
小白博主等级

just do it!

  • 累计撰写 60 篇文章
  • 累计创建 77 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

版本号升级小工具类

小白
2022-04-27 / 0 评论 / 0 点赞 / 233 阅读 / 499 字

使用场景

最近再开发小程序相关业务,由于微信对官方小程序限制比较严格,类似的视频播放、直播、社交类的功能都需要相关资质,单由于这些资质都不好申请,所以功能开发完成提交到微信审核的时候,往往会被审核人员拒绝通过。因此就实现了一个避开微信官方人员审核的方法(方法可用,还是建议按照微信要求补充相关资质再进行开发)。

实现业务逻辑

总的思想就是线上DB维护一个对应小程序的版本号,微信小程序代码中维护一个版本号,两个版本号对比,相同则为线上版本, 不同则为提交审核版本。提交审核版本的时候,小程序代码中增加隐藏逻辑,相关需要资质的功能模块再对提交审核版本做隐藏,线上版本开放。

  • 小程序加载获取线上版本号onlinVersion
  • 小程序代码中版本号于线上版本号做对比,相同则全局版本变量version为true(version 即为当前小程序版本, true为线上版本, false为提交审核版本)
  • 相关需要资质的功能模块加上隐藏逻辑判断(wx:if=”{{version}}”)
  • 代码提交审核
  • 审核通过发布后,线上版本号升级一个版本

版本升级工具类

public static String versionUpdate(String version) {
    if (StrUtil.isBlank(version)) {
        return "0.0.0";
    }
    List<Integer> list = Stream.of(version.split("\\.")).map(Integer::parseInt).collect(Collectors.toList());
    boolean carry = false;
    for (int i = list.size() - 1; i >= 0; i--) {
        Integer n = list.get(i);
        if (i == list.size() - 1) {
            n++;
        } else {
            n += (carry ? 1 : 0);
        }
        carry = n > 99;
        list.set(i, carry ? 0 : n);
    }
    if (carry) {
        list.add(0, 1);
    }
    return list.stream().map(Object::toString).collect(Collectors.joining("."));
}
0

评论区