如何判断你是每天的首次打开小程序,并进行签到提示?

wx.setStorage({

key: 'sign_in',

data: dateFormat(new Date(), "yyyy-MM-dd")

});

this.sign_in = wx.getStorageSync('sign_in')//在storage里取数据

console.log(this.sign_in,'sign_in')

if (this.sign_in == null){

wx.showToast({

title: '签到成功',

icon: 'success',

duration: 2000

})

这样不可以,应该怎么判断this.sign_in才可以只签到首次

阅读 5.9k
3 个回答

我们之前做是后台返回,用户是否为首次打开小程序的一个参数, 也可以进入小程序就记录一下事件戳, 如果当前事件戳为昨天的, 那就说明今天第一次登陆, 别忘了更新这个时间戳, 缺点就是没法跨平台, 或是用户清除缓存就判断不准了, 所以还是建议后台来做.

改成“如果用户当天没签到,则弹出签到提示”怎么样,这样的话后台返回个flag就行了,感觉会比较容易判断。

以下只是思路:

  1. 用户每次登录都在用户数据库中记录一个时间戳 time
  2. 假设 a = 今天 00:00:00 的时间戳,假设 b = 今天的 23:59:59 的时间戳
  3. 如果 time <= a,那么用户今天就是第一次登录。
  4. 如果 a <= time <= b,那么用户今天就不是第一次登录。

登录数据还是保存在服务端比较合适,否则用户换了手机或者清理了本地数据,就又变成第一次登录了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题