小程序中让某个方法只执行一次,如首页自动弹层广告

目的:首页初始显示时做了一个定时自动弹出层广告,但是小程序的页面跳转其他页面再返回首页时,这个自动弹出方法还会执行一次,可我只想在小程序整个使用过程中只执行一次

1.首页,写了一个timer的定时器,让首页打开3秒后自动显示弹出 广告:

timer() {
    let that = this;
    setTimeout(function () {
      that.setData({
        show: true
      });
    }, 1000);
  },

然后在app.js中的globalData定义一个变量,变量就叫 time: 1 ,

然后我要做的是执行定时器,在需要做的的页面js的onload中进行判断

const app = getApp()
    if(app.globalData.position.time== 1){
      this.timer()
      console.log(1);
    }

页面的onload周期页面每次进入都会走,当globalData中的time是1的时候,执行,否则就隐藏,所以首次进入页面广告弹层会显示,然后再在js的onUnload周期中更改全局变量global

onUnload() {
    getApp().globalData.position.time = 2;
  },

小程序离开这个当前页面时执行销毁周期,在此周期内将全局变量time改为2,当前time为2,这样只要用户不退出小程序,time就一直不为1,广告就没有显示的条件,不管进入多少次这个广告就都只第一次进入时显示。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值