微信小程序如何实现在登录完成后才触发业务逻辑
在小程序中,登录需要通过按钮才能触发了,那么在登录完成前(受权登录后逻辑登录),是不应该触发涉及客户的逻辑代码的,比方说没登录的情况下,客户中心页面应该不触发请求的。
处理方案可以自己封装底部导航栏,没有登录即不显示其余页面;也可以在进入页面的时候先判断是登录,登录了再触发逻辑。
相比于第二种,第一种麻烦很多,所以这里详情第二种,登录后在触发逻辑。
思路如下:
在app.js中实现两个方法,一个方法是受权登录获取客户信息authorize,一个方法是判断能否已经登录waitLogin。在第二个方法waitLogin中,定时判断能否已经登录,假如登录了就返回确定标志。
为什么要是定时判断呢,假如不是定时判断,只触发一次判断,远远没有实现登录后立马触发逻辑代码的功能。
代码如下:
const Request = require(“/utils/request”);
App({
onLaunch: function(options) {
this.authorize(options.query);},
authorize: function(share) {
//登录并获取客户信息,最后保存到缓存和globalData中},
globalData: {
sessionid: "",userInfo: {},userLevel:{}},
/**
- 等待登录完成
*/
waitLogin: function() {
let promise = new Promise((resolve, reject) => { let timer = setInterval(() => { if (this.globalData.sessionid && this.globalData.userInfo.id && this.globalData.userLevel.id && this.globalData.isIOS !== undefined) { clearInterval(timer); resolve(this.globalData); } else { //todo 信息构建中 } }, 250);});return promise;}
})
可以看到waitLogin 方法的重点在于定时和promise,只有在判断已经登录后,才会触发resolve。
需要登录才能触发的逻辑,在页面加载完成时调用getApp().waitLogin().then(data=>{});并在回调中触发逻辑代码就可,如下:
image
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 微信小程序如何实现在登录完成后才触发业务逻辑
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 微信小程序如何实现在登录完成后才触发业务逻辑