微信小程序如何实现在登录完成后才触发业务逻辑
在小程序中,登录需要通过按钮才能触发了,那么在登录完成前(授权登录后逻辑登录),是不应该触发涉及用户的逻辑代码的,比如说没登录的情况下,用户中心页面应该不触发请求的。
解决方案可以自己封装底部导航栏,没有登录即不显示其他页面;也可以在进入页面的时候先判断是登录,登录了再触发逻辑。
相比于第二种,第一种麻烦很多,所以这里介绍第二种,登录后在触发逻辑。
思路如下:
在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=>{});并在回调中触发逻辑代码即可,如下:
用户中心页面- webview实现支付后的业务逻辑处理,小程序webview完成微信支付后的处理方法——微信web-view高级用法12
- 逻辑复杂的业务代码如何实现有顺序的跳转展示(登录成功后要去摇奖,设置预留信息,修改密码,弹窗警告......等等)
- 实现手机扫描二维码页面登录,类似web微信-第一篇,业务分析
- 微信投票程序实现逻辑导图
- 浅谈:如何用C#实现简单的带有验证码及密码使用MD5加密的“登录”WinForm小程序
- 用c#开发微信 (12) 微统计 - 阅读分享统计系统 2 业务逻辑实现
- 用c#开发微信 (7) 微渠道 - 推广渠道管理系统 2 业务逻辑实现
- 如何在原生微信小程序中实现数据双向绑定欢迎使用CSDN-markdown编辑器
- 如何在用户登录时sap时触发一特定程序执行
- 单击事件的处理方式及注册窗体的创建之(二)登录业务逻辑的实现
- 如何在微信小程序中实现今日头条App那样的Topbar
- 微信小程序中如何实现页面的跳转
- 教你如何实现微信小程序与.net core应用服务端的无状态身份验证
- 微信小程序表单登录并获取个人信息的实现
- PHP后台实现微信小程序登录
- 如何用外挂实现程序自动登录
- LINQ : 如何为LINQ TO SQL实现自定义业务逻辑
- ecshop 会员登录注册业务逻辑实现
- 微信小程序例子——如何使用scroll-view组件实现视图垂直滚动
- php(ThinkPHP)实现微信小程序的登录过程