使用场景
最近再开发小程序相关业务,由于微信对官方小程序限制比较严格,类似的视频播放、直播、社交类的功能都需要相关资质,单由于这些资质都不好申请,所以功能开发完成提交到微信审核的时候,往往会被审核人员拒绝通过。因此就实现了一个避开微信官方人员审核的方法(方法可用,还是建议按照微信要求补充相关资质再进行开发)。
实现业务逻辑
总的思想就是线上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("."));
}
评论区