近期做了个今日任务的功能,需要每天将任务列表的状态还原。原来思路是设置定时任务,每晚23:59执行;但是发现H5页面没有打开时,定时任务压根就不会执行。所以又做了个临时措施: 每天第一次开启页面时,还原任务状态。
代码如下:
async smartRecordTime () {
console.log('smartRecordTime', 'smartRecordTime')
var now = new Date().toLocaleDateString()
var time = Date.parse(new Date(now))
let res = await awaitWrap(this.uplusApi.upUserModule.getUserInfo())
console.log('smartRecordTime', res)
if (res[1]) {
this.userId = res[1].retData.userId
}
// 获取保存的页面开启时间
res = await awaitWrap(this.uplusApi.upStorageModule.getStringValue({storageName: this.userId + ',firstDate', storageValue: ''}))
console.log('res', res)
if (res[1].retData) {
console.log('time2', time)
// res[1].retData = 16000000
// 与当前时间相比较,如果小于当前时间,则还原状态,并再次保存时间
if (time > res[1].retData) {
console.log('time1', time)
this.uplusApi.upStorageModule.deleteNode({storageName: this.userId + ',todayTasks'}).then(result => console.log('result deleteNode', result))
this.$refs.myEnergy.initEnergyList()
this.uplusApi.upStorageModule.putStringValue({storageName: this.userId + ',firstDate', storageValue: JSON.stringify(time)})
.then(result => console.log('result', result)).catch(err => console.log('err', err))
}
} else {
console.log('time', '今天第一次开启')
this.uplusApi.upStorageModule.deleteNode({storageName: this.userId + ',todayTasks'})
this.$refs.myEnergy.initEnergyList()
this.uplusApi.upStorageModule.putStringValue({storageName: this.userId + ',firstDate', storageValue: JSON.stringify(time)})
.then(result => console.log('result1', result))
.catch(err => console.log('err1', err))
}
}