微信小程序区分环境开发 and 合理绕过官方上线审核

前言:

首先说明一点,虽然绕过官方审核,是不推荐的行为,但是实际的项目开发中,难免会有一些需求或功能在发布上线时,会被官方拒绝。

例如类目不对的情况,由于企业性质或其他原因,无法申请相关类目要求的资质;或者申请资质办理难度大、所需时间漫长,无法在上线节点前申请完成,但是实际业务中确实有此需求。

这就需要在上线时先合理绕过官方审核,以期能顺利发布成功,不耽误业务使用。

一、背景和问题描述

很多开发者在开发项目的时候发现,上线微信小程序最难的不是开发阶段,而是微信审核机制。因为微信为了自身平台规避法律风险,开发的很多功能需要提供相关的证件或者资质,就像前面所说,相关的资质办理难度大,或者一般的公司根本办不下来。那么绕过审核就是一个很重要的上线技巧。

我们之前开发的一个微信小程序,涉及一些视频,发布审核时,被官方认定需要补充"教育服务-在线视频课程类目"。如下图所示:

但是我们项目中的视频内容是关于"用车知识的介绍和使用须知",并不属于教育类视频或直播课程,而且我们也拥有"教育服务 > 在线教育"的服务类目,可能跟"在线视频课程"类目不一样。

可是实际业务中确实需要此功能,那么该如何顺利上线呢?

二、解决思路

因为需要此功能,那么:

  1. 在体验版环境下必须能正常展示,才能让测试同事正常测试。
  2. 在提交审核时,即在开发版环境下,此模块需要隐藏,才能绕过官方审核,使审核通过。
  3. 在发布审核成功后,即在正式版环境下,此模块需正常展示,可供用户使用。

三、解决方案

我这边实现了两种解决方法,供大家参考:

方案一

核心: 使用 wx.getAccountInfoSync()

功能描述: 获取当前账号信息。线上小程序版本号仅支持在正式版小程序中获取,开发版和体验版中无法获取。

可参考微信小程序官方文档: 获取当前账号信息:Object wx.getAccountInfoSync()

具体使用方法如下:

  1. 在小程序项目的app.js文件中的onLaunch中获取小程序账号信息:
js 复制代码
onLaunch: function () {
    //启动时动态获取小程序的 appid
    const accountinfo = wx.getAccountInfoSync()

    wx.setStorageSync('miniProgram', accountinfo.miniProgram)
},
  1. 然后在需要做判断的模块的页面获取miniProgram,我这边是在展示视频模块入口页面获取:
  • 在js文件中获取账号信息的值:
js 复制代码
data: {
    miniProgram: wx.getStorageSync('miniProgram'),
},
  • 在html文件中进行判断:

注:我是使用miniProgram.version的值进行判断的。

因为此值是线上小程序版本号 ,只有在线上环境中 才会有值,所以只会在线上环境 中展示,提交审核的开发环境 中看不到此模块。

而在体验版环境 下,我不会加wx:if="{{miniProgram.version}}"这个代码,只有在提交审核时加上。缺点就是需要改动代码,但是能完美避开审核,使审核顺利通过。

方案二

核心: 使用小程序视频插件。
优点: 完美继承完美继承小程序原生<video>的所有特性和事件。不用改代码。

后期我们开发了一个小程序的视频插件,在展示视频的页面中,使用视频插件代替<video></video>。这样也能完美通过审核。

这个小程序视频插件作用是,专门为没有视频播放资质的小程序提供视频播放功能,解决视频播放资质问题。

思路来源于官方解答:

涉小程序插件功能介绍: developers.weixin.qq.com/miniprogram...

涉小程序类目资质、适用范围参考:developers.weixin.qq.com/miniprogram...

以上,希望对大家有帮助!

相关推荐
WebInfra1 小时前
Rspack 2.3 发布:联手 SWC 团队带来全新编译器
前端·javascript·github
小卿噢2 小时前
同样是插 10 万行,最快的写法比最慢的快 103 倍
前端
weixin_417396832 小时前
星级酒店境外电视频道怎么合法接入?合规要点与核对清单
开发语言·前端·php·1024程序员节·综合布线
hiahiahia1232 小时前
Structured Output
前端·人工智能
FRing032 小时前
JavaScript入门到精通三十一(原型继承、原型链)
开发语言·前端·javascript
山雀~4 小时前
CSP 安全漏洞修复
前端·网络协议
陌离4 小时前
Go-Gui:一套 无限接近 现代化UI的 GPU绘制界面组件框架
前端
咚咚咚小柒4 小时前
【前端】LangChain.js学习
前端·javascript·人工智能·typescript·langchain·vue·ai编程
2401_885885045 小时前
巴林语音通知接口如何对接?系统告警语音API接入教程
android·前端·网络·python·语音识别
java1234_小锋5 小时前
【技术专题】CSS3 网页技术 - CSS3 盒模型
前端·css·css3