uniapp定时任务启动?

业务要求是:需要在首页或者商城或者帖子页面的首页弹出一个弹窗广告,可以配置在那个首页的页面弹出,配置时间段弹出(比如:下午6:00弹出广告,在首页和商城页面弹出,弹出时间为10秒,只要是第一次进来的用户没有超过登录15天的用户都弹出)?这怎么实现?大佬们


回答:

大致思路你可以参考一下:

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);

}

},

};


回答:

  • 几点弹出可以初始化页面的时候获取当前时间, 判断是否弹出
  • 弹出时间, 在确定弹出时加一个10s定时器, 十秒后关闭弹窗
  • 第一次进来的用户没有超过登录15天的用户都弹出: 这一点需要初始化时查后端接口做判断

综合上面就可以了

以上是 uniapp定时任务启动? 的全部内容, 来源链接: utcz.com/p/934364.html

回到顶部