uniapp vue APP
老板提了一个新需求:
用户使用30分钟后,弹出 “使用时间太久啦,眼睛休息一下” 的弹框。
如何实现,一点思路没有,有大神帮帮忙指导一下吗?
uniapp vue APP
老板提了一个新需求:
用户使用30分钟后,弹出 “使用时间太久啦,眼睛休息一下” 的弹框。
如何实现,一点思路没有,有大神帮帮忙指导一下吗?
一只老猿 (作者)
//App.vue
<script>
export default {
globalData: {
secondCount: 0,
},
data() {
return {
timer: null, // 计时器
};
},
onLaunch() {
console.log('App Launch');
},
onShow() {
console.log('App Show');
this.timer = setInterval(() => {
this.globalData.secondCount++;
}, 1000);
},
onHide() {
clearInterval(this.timer);
this.timer = null;
console.log('App Hide');
},
beforeDestroy() {
clearInterval(this.timer);
this.timer = null;
},
methods: {
watch: function(method, istr) {
var obj = this.globalData;
Object.defineProperty(obj, istr, {
configurable: true,
enumerable: true,
value:second,
set: function(value) {
this.globalData.secondCount = value;
method(value);
},
get: function(value) {
return this.globalData.secondCount;
}
})
}
}
}
</script>
//index.vue
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
onLoad() {
const App = getApp();
console.log("globalData:"+JSON.stringify(getApp().globalData));
getApp().watch(this.getWatchCount,"secondCount") //sumTime是globalData中定义的属性
},
methods: {
getWatchCount(val){
console.log('输出变化的值',JSON.stringify(val));
//当 sumTime>10 调用方法 handleSumTimeGreaterThan10
},
handleSumTimeGreaterThan10() {
// 处理 secondCount 大于10的情况
console.log('secondCount 大于10了!');
// 将全局变量sumTime设置0,重新计数
}
}
}
</script>
<style>
</style>
一只老猿 (作者)
嗯 好像也只能这样。谢谢
2023-12-13 12:00
一只老猿 (作者)
大神,我的实现方法有问题,能帮忙看看代码,指导一下如何修改吗?万分感谢
2023-12-23 10:48