小程序一进入在首页首先会弹出一个此次打开小程序只显示一次的启动广告,以前写在index.js里的onready里,后来写在别的小程序里又失效了,上网查了查我是没查到什么页面可以只执行一次的生命周期,app.js的onLunch周期倒是在小程序此次执行周期内只走一回,但是我没找到可以在app.js的onlunch中执行页面内的js方法的办法,结合网上多位大神的方法,自己总结了一个使页面中js的方法只执行一次,自己想明白了思路其实很简单
首先在app.js中的globalData定义一个变量,然后在app.js中的onLaunch调用,变量就叫 global : 1 吧,
然后我要做的是控制广告显示隐藏,在需要做的的页面js的onload中进行判断
if(app.globalData.global == 1){ this.setData({ zdm: true }) }页面的onload周期页面每次进入都会走,当globalData中的global 是1的时候,我要控制的元素会显示,否则就隐藏,所以首次进入页面我这个元素会显示,然后再在js的onUnload周期中更改全局变量global onUnload: function () { app.globalData.chuangjian = 2; }, 小程序离开这个当前页面时执行销毁周期,在此周期内将全局变量global 改为2,当前global 为2,这样只要用户不退出小程序,global 就一直不为1,广告就没有显示的条件,那么广告页不管进入多少次这个广告就都只显示第一次进入了 注意不要忘了引入 const app = getApp()