如何检查应用程序上次打开的时间

时间:2018-04-29 14:58:21

标签: ios swift nsdate swift4

在我的应用程序中,我想检查用户上次打开应用程序的时间,如果是14天或更长时间,用户会收到提示,说他们应该更活跃,但我也不是确定如何检查该应用上次使用的时间。

3 个答案:

答案 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
    }
}