目的:首页初始显示时做了一个定时自动弹出层广告,但是小程序的页面跳转其他页面再返回首页时,这个自动弹出方法还会执行一次,可我只想在小程序整个使用过程中只执行一次
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,广告就没有显示的条件,不管进入多少次这个广告就都只第一次进入时显示。