一直以来作为第三方服务商为商户运营小程序时,使用的是 复用公众号主体快速注册小程序 ,这种方式创建小程序很快速,商户也不需要去记录小程序帐号信息,我们维护小程序代码时也很容易,一套代码,有升级时自动去全网更新。
一切执行起来都挺和谐的,直到直播功能出现后,这份安宁被打破了
1、原来的商户无小程序帐号,变成一种羁绊了。好在还可以引导商户扫描《小程序助手》小程序码,设置登录邮箱;或在微信公众平台,通过找回帐号的方式获得;
2、小程序模板不能一蹴而就了,还得区分商户是否有开通小程序直播插件;
3、新的小程序要开通直播功能,必须经历①设置登录邮箱(或找回帐号)→②上传不带直播的代码→③发起小程序支付→④开通小程序插件→⑤上传带直播的代码 这样一串长流程。
能一次就解决的问题都不算问题,最大的问题是代码管理,如果非得分成2套代码来管理,对于程序员来讲确实有点痛苦,如果再来一个类似直播的插件,那不得分4套代码,接着8套代码,16套代码,那不得逼疯程序员。
好在小程序有为第三方提供ext_json,用来区分不同商户,有了它,我们就可以1套代码搞定不同的商户了。具体操作如下:
1、app.json中去掉插件相关引入代码
2、上传小程序代码前获取商家已经开通的插件列表
https://api.weixin.qq.com/wxa/plugin?access_token= post参数{"action":"list"}
再判断是否已经开通相关插件,如直播插件的appid为wx2b03c6e691cd7370,那么可以判断返回的插件list字符串是否包含该appid。
如果有开通,则extJson中插入该插件的引用(plugins开始的这串)
{\"ext\":{\"你自己定义的扩展参数\":\"扩展参数值\",\"haveLive\":1},\"plugins\": {\"live-player-plugin\": {\"version\": \"1.0.16\", \"provider\": \"wx2b03c6e691cd7370\"}},\"recompile\": true}
如果没有开通则extJosn为
{\"ext\":{\"你自己定义的扩展参数\":\"扩展参数值\",\"haveLive\":0}}
3、上传代码时传入ext_json
https://api.weixin.qq.com/wxa/commit?access_token= post参数 {"template_id":模板ID,"ext_json":"2中返回的json字符串","user_version":"版本号","user_desc":"版本描述"}
4、在小程序中通过 wx.getExtConfig 获取参数 haveLive, 当为0时,表示没有开通直播插件,这时候需要隐藏所有可能出现直播相关的界面。不然小程序审核时会被驳回,要求类目要增加选择“社交 → 直播”类目(因为有直播相关功能,却没有开通小程序直播插件。在小程序中要使用直播功能,要么使用官方提供的小程序直播插件;要么设置类目为“社交 → 直播”后,使用其他途径进行直播)
你好,请问其他页面的json文件中,与直播代码相关的怎么去掉。例如有页面的json引入了直播订阅消息的组件 。
同一套代码(有直播相关逻辑) 分别给两个小程序发 一个有直播权限 另一个没有
通过ext.json动态判断加 plugin ,三方里给没直播权限小程序代码上传还是报错
"info": "miniprogram has no permission to plugin[wx2b03c6e691cd7370] rid: 5fd1923d-5faff214-023af290", "data": { "errcode": NumberInt("80082"), "errmsg": "miniprogram has no permission to plugin[wx2b03c6e691cd7370] rid: 5fd1923d-5faff214-023af290" }
请问下你们有遇过没?
有代码案例可以参考吗
请问类目设置为“社交 → 直播”后,小程序上架申请是不是要特别的资质证明?
请问直播插件更新的话,用这一个第三方动态提交会更新,但是如果当当只要更新插件版本的话,之前那一个更新就不能更新是这样吗?
同问:app.json中的plugins可以被ext.json取代,那页面中的订阅组件引入怎么解决呢。当不支持直播时不引入订阅组件 好像没办法做到。
大佬您好,上传代码是后端上传判断加入直播代码 ,还是前端判断
这个引入的要怎么判断显示隐藏呢
麻烦问下,在ext.json中动态插入直播插件,这样是将插件放置到主包中了吧
有偿求帮助,帮忙接入小程序直播代码