前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小程序登录态,如何去维护?

小程序登录态,如何去维护?

作者头像
企鹅号小编
发布2018-01-10 14:55:36
1.3K0
发布2018-01-10 14:55:36
举报
文章被收录于专栏:微信小开发微信小开发

引言

对于开发小程序而言,登录态的维护是不可避免的。下面将抛出某书小程序的解决方案,欢迎大家扔砖。

某书小程序是基于wepy开发,下面的同样适用于小程序原生开发。

对于某书,登录无非就是获取登录态,然后服务于各page,用于打点,获取相应数据,购买等。

因为是每个page都需要,因此如何优化的封装会更简洁?

小程序提供了一系列的注册App,注册Page的生命周期,因此毫无疑问,在注册APP的生命周期中完成获取登录态操作。

But,登录是异步的,如何保持各个page的同步,是的,答案是promise,那么该如何实现?

撸代码

注册App,onLaunch中

注册Page,onLoad中

其实思路很简单,申明全局变量promise,将登录的promise赋值给全局promise变量,然后在各页面init之前 await!

以上的内容是在今年九月初的解决方案,看起来很完美,但是真的很完美嘛?

显然不是。

问题在于,你就确认onLaunch会早于onLoad先运行!

被坑了一把,在早期,小程序中onLaunch的确是会早于onLoad先运行,但是在最新版本却不是了(微信的开发人员也没想过这个问题吧),这尼玛还是在最近运营那边需要统计销量,发现,打点数据中很多缺少用户信息等,然后才发现这个问题。

目前的解决方案,撸代码

注册App,onLaunch中,增加promiseQueue

建立mixin文件,login.js

在page中只需要实现init方法就ok,无需关注登录态细节

本文来自企鹅号 - 前端这么大我想去看看媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 前端这么大我想去看看媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档