在我的应用程序中,我想检查用户上次打开应用程序的时间,如果是14天或更长时间,用户会收到提示,说他们应该更活跃,但我也不是确定如何检查该应用上次使用的时间。
答案 0 :(得分:1)
只要应用变为非活动状态(使用applicationWillResignActive
应用代理),就会将当前日期存储在UserDefaults中。
每当应用程序变为活动状态时(使用applicationDidBecomeActive
应用程序代理),从UserDefaults加载存储的日期(如果有)。如果有日期(第一次使用该应用程序时),请计算检索日期与当前日期之间的天数。
有关计算两个日期之间差异的方法,请参阅Swift days between two NSDates。简而言之,您使用Calendar dateComponents(_, from:, to:)
方法。
答案 1 :(得分:0)
在applicationWillTerminate(_:)
&上保存当前日期(UserDefaults) applicationDidEnterBackground(_:)
方法。
在application(_:didFinishLaunchingWithOptions:)
答案 2 :(得分:0)
在AppDelegate
:
func applicationWillResignActive(_ application: UIApplication) {
UserDefaults.standard.set(Date(), forKey: "LastOpened")
}
func applicationDidBecomeActive(_ application: UIApplication) {
guard let lastOpened = UserDefaults.standard.object(forKey: "LastOpened") as? Date else {
return
}
let elapsed = Calendar.current.dateComponents([.day], from: lastOpened, to: Date())
if elapsed >= 14 {
// show alert
}
}