我的主要功能是,点击switch后开关打开,同时触发switch的事件和picker的事件。picker的事件的功能是将用户选择的时间到data中定义的变量中,switch事件的主要功能是,要求用户授权订阅消息,当用户允许时,就将picker选择的时间写入数据库
可以看出,用户在选择完提醒时间后,才可以选择允许授权。我在授权函数中,写的操作是,用户点击'允许',就将用户选择的时间写入数据库。
但是,当用户选择总是允许时,授权函数就不等待用户选择完时间,就执行了。直接将空的时间写入了数据库
请问下,有没有什么解决方案或者思路
可以通过这样判断用户是否点了“总是”,然后做提示
wx.getSetting({ withSubscriptions: true, success(res) { console.log(res.authSetting) // res.authSetting = { // "scope.userInfo": true, // "scope.subscribeMessage": true // } console.log(res.subscriptionsSetting) // res.subscriptionsSetting = { // SYS_MSG_TYPE_INTERACTIVE: 'accept', // SYS_MSG_TYPE_RANK: 'accept', // zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE: 'reject', // ke_OZC_66gZxALLcsuI7ilCJSP2OJ2vWo2ooUPpkWrw: 'ban', // } } });
这里的话,给你一个建议就是知道用户总是后,避免反复入库,用户点击后,弹窗提示并配置这个时间点,同时记录当前页面这个openId(用户)是否已经设置过时间~
这是我之前写的文章,你可以看下
https://developers.weixin.qq.com/community/develop/article/doc/000240bb188098d767f9b299956013