小程序心跳启动功能实现

客户要求是这样的:

后台控制给用户发随机红包,当检测到有红包,无论用户在浏览哪个页面在做什么,马上弹出红包界面。

来分析实现思路:

首先,需要实现心跳请求,得借助小程序的定时器的setInterval,官网地址:

https://developers.weixin.qq.com/miniprogram/dev/api/base/timer/setInterval.html

然后就是考虑,怎么控制每个页面弹窗的显隐,wx:if或hidden元素,这里切换不频繁,我们使用的是wx:if;接着就是怎么改变对应的页面显隐对应的参数值,这里有几个思路:

1、将后端红包请求接口写在每个页面的生命周期onLoad或onShow函数中,然后使用定时器,然后setdata或直接data。

2、在app.js中配置全局变量,将请求放在小程序的onLoad或onShow中,在每个页面通过app.data进行控制。

3、在app.js中直接改变每个页面对应的data的控制参数。

第一种太傻,第二种代码重复多,第三种无疑是理想方式,所以问题是怎么直接改变page的页面值?

这里需要获取当前页面栈,对应的函数

getCurrentPages(),官网地址:

https://developers.weixin.qq.com/miniprogram/dev/reference/api/getCurrentPages.html

控制代码:

var i = getCurrentPages()
  i[i.length - 1].setData({
      picHidden: true,
      picNum:rest.money
})

将上面办法写在你请求函数的回调中就欧克了

原文发布于微信公众号 - 宅机吧(zhai-78)

原文发表时间:2019-08-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券