问题:
因为用户需求所以有的小伙伴的微信会使用到微信订阅,这个之前可以自动触发授权弹框,但是随着微信开发者工具和微信api的更新,已经不支持默认调起弹窗,需要点击事件触发
解决方法:
可以在需要订阅的页面onLoad里调起wx.showModal,在确认按钮里调起wx.requestSubscribeMessage(详细请看微信官方api),这个时候大家就会问了,我是要没订阅的人弹出订阅弹窗,以及订阅了就不弹了,你这样需要一个条件来判断啊,好的接下来就要用到wx.getSetting(可以查看当前用户对当前微信小程序授权的所有信息)成功的回调里有res.subscriptionsSetting这个对象,如果这个对象里有itemSettings这个数组说明不用再授权了,那么怎么才会有这个数组呢,因为我们普通订阅都是一次性的,所以只有把订阅框下面的记住我的选项勾选后才会有这个弹窗,在点击确认授权订阅后在本地存一个判断,表示已经同意授权,为什么这么做,因为只通过一个res.subscriptionsSetting.itemSettings来判断的话,用户如果没勾选是不是会每次进页面就弹出来,所以判断弹框需要用res.subscriptionsSetting.itemSettings或本地存的确认授权判断,这样在一次性授权后就不会去到那个页面一直弹出来,因为是一次性的,所以需要在退出的时候清除这个缓存,退出清理缓存不好做,所以我选择在app.js的onLaunch生命周期函数里,一进入小程序就清理这个缓存在这里插入图片描述
app.js会进入小程序最先执行,requestType就是存的状态,菜鸡分享大佬们可以指点一下,请不要指指点点