uniapp定时任务启动?
业务要求是:需要在首页或者商城或者帖子页面的首页弹出一个弹窗广告,可以配置在那个首页的页面弹出,配置时间段弹出(比如:下午6:00弹出广告,在首页和商城页面弹出,弹出时间为10秒,只要是第一次进来的用户没有超过登录15天的用户都弹出)?这怎么实现?大佬们
回复
1个回答
test
2024-07-03
大致思路你可以参考一下:
export default {
data() {
return {
// 用户登录时间
userLoginTime: null,
// 当前时间
currentTime: null,
};
},
onShow() {
// 获取用户登录时间
this.userLoginTime = getUserLoginTime();
// 获取当前时间
this.currentTime = new Date();
// 计算用户登录天数
let loginDays = Math.floor((this.currentTime - this.userLoginTime) / (1000 * 60 * 60 * 24));
// 如果用户登录天数小于或等于15天,就弹出广告
if (loginDays <= 15) {
// 设定6点弹出广告
let targetTime = new Date();
targetTime.setHours(18);
targetTime.setMinutes(0);
targetTime.setSeconds(0);
targetTime.setMilliseconds(0);
// 计算当前时间与目标时间的差值
let delay = targetTime - this.currentTime;
// 如果差值小于0,说明今天的6点已经过了,设置为明天的6点
if (delay < 0) {
delay += 24 * 60 * 60 * 1000;
}
// 定时弹出广告
setTimeout(() => {
this.showAd(); // 弹出广告
// 设置广告显示10秒后关闭
setTimeout(() => {
this.closeAd(); // 关闭广告
}, 10000);
}, delay);
}
},
};
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容