一、开发思路:
see_chronograph()方法来判断是否展示
start_chronograph()设置多少时间后展示
通过微信小程序内存来存储,没有通过后端数据参数来展示
注:删除小程序会导致逻辑失效。
二、代码展示:
1、在需要的页面onshow或onLoad等需要的页面进行判断是否显示相应内容(判断有没有过期时间到即可展示)
以下为例子:
//判断是否时间到展示相应数据
if (see_chronograph("advertisement_day")){
this.setData({ advertisementTrue: true })
}else{
this.setData({ advertisementTrue: false });
}
2、加入方法,以便上一个方法调用(是否时间到,展示相应数据)
//查看计时器有没有过期 see_chronograph("index_gggg")
function see_chronograph(obj, interval, type) {
let nowday = formatTime(new Date());
let new_timer={
[obj]:{
time:'',
type:'',
}
};
let timer = wx.getStorageSync('timer');
if (timer == ''){
new_timer[obj].time = nowday;
new_timer[obj].type = '1d';
wx.setStorageSync('timer', new_timer);
timer = {};
}
if (timer[obj] == undefined) {
let obj_timer={
[obj]: {
time: nowday,
type: '0d',
}
}
timer = Object.assign(timer, obj_timer);
wx.setStorageSync('timer', timer);
return true; //第一次时候返回true
}
var before_Tamp = Date.parse(timer[obj].time);
var new_Tamp = Date.parse(nowday);
if (before_Tamp <= new_Tamp ) {
return true;
} else {
return false;
}
}
3、当弹出页面,点击领取或关闭时候,决定是否一天展示一次,还是随机天数、小时来展示相应数据
为例:1d 为1天
//开始 计时器 chronograph("index_gggg", 1,'d' )
function start_chronograph(obj, interval, type) {
let nowday = formatTime(new Date());
let new_timer = {
[obj]: {
time: '',
type: '',
}
};
var last_day_Tamp;
let timer = wx.getStorageSync('timer');
if (type == 'mo') { //月
last_day_Tamp = Date.parse(nowday) / 1000 + interval * 30 * 24 * 60 * 60;
}
if (type == 'd') { //天
last_day_Tamp = Date.parse(nowday) / 1000 + interval * 24 * 60 * 60;
}
if (type == 'h') { //小时
last_day_Tamp = Date.parse(nowday) / 1000 + interval * 60 * 60;
}
let last_day = formatTimeTwo(last_day_Tamp, 'Y/M/D h:m:s');
if (timer == '') {
new_timer[obj].time = last_day;
new_timer[obj].type = interval + type;
wx.setStorageSync('timer', new_timer);
timer = {};
}
if (timer[obj] == undefined) {
let obj_timer = {
[obj]: {
time: last_day,
type: interval + type,
}
}
timer = Object.assign(timer, obj_timer);
wx.setStorageSync('timer', timer);
}
timer[obj].time = last_day;
timer[obj].type = interval + type;
wx.setStorageSync('timer', timer);
}
方法实现比较简单