开篇絮叨:
有过小程序上线经历的同学都知道,微信对资质的审核很严。且不说行业资质的高要求,就算你在界面上多挂几个视频,也得要求《网络文化经营许可证》等,这些东西都不是一般公司能解决的。
所以,上线饶审,就不得不做。以前呢,多是用开关模式,就是后端加个自定义值,如1或true之类,前端界面打开时,先访问【开关接口】,如果开着,就把敏感内容隐藏,反之就打开。
还有,就是延迟显示页面等方案,其实都是一个思路:
审核的时候,让微信审核人员看到【合适的内容】,过审后,则是通过控制接口,出现我们想要展示的内容。
弊端很明显:影响用户体验。
经查询资料,实际测试等,老七确认了更合适的替代方案:【审核版本】处理法。
前摇结束,正文开始:
微信审核人员,审核的版本 为 :【开发版(develop)】。
其实最重点就是上边这句话,这是经过各种查询,测试,验证得出的结果。o(╥﹏╥)o
开发版,就是平常我们开发时看到的版本,此外,还有可在小程序后台设置的体验版(trial),和正式发布版(release)。
总结:只要保证【开发版】没有拒审元素即可。
其实微信小程序,本身就提供了获得当前模式版本的函数。
wx.getAccountInfoSync()
具体返回值为下图:
文档地址:点击查看:微信当前账号版本
而uni-app也对此做了封装:
uni.getAccountInfoSync()
文档地址:点击查看:uniapp获得当前账号版本
然后,就简单了。通过获得当前账号模式版本,处理即可。
具体处理
我的处理方式为,在App.vue的onLaunch函数里,判断版本,并存入全局变量
//判断是否开发版
const accountInfo = uni.getAccountInfoSync();
if (accountInfo.miniProgram.envVersion === 'release'
|| accountInfo.miniProgram.envVersion === 'trial') {
this.globalData.IsDevelop = false;
} else {
this.globalData.IsDevelop = true;
}
然后在具体某页面里,根据这个 IsDevelop ,判断是否显示某些 页面元素。
或是否执行某些代码,从而达到饶审的目标。
如:
<view class="textbox" v-if="!IsDevelop ">
//此处的IsDevelop 为本页面vue data里声明的变量
this.IsDevelop = getApp().globalData.IsDevelop
好,搞定收工。