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

How to check how long ago was the app last opened

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

每当应用程序变为非活动状态时(使用 applicationWillResignActive 应用程序委托),将当前日期存储在 UserDefaults 中。

每当应用程序激活时(使用 applicationDidBecomeActive 应用程序委托)从 UserDefaults 加载存储的日期(如果有)。如果有日期(不会是第一次使用),计算检索到的日期和当前日期之间的天数。

有关计算两个日期之间差异的方法,请参阅 Swift days between two NSDates。简而言之,您使用Calendar dateComponents(_, from:, to:)方法。

applicationWillTerminate(_:)applicationDidEnterBackground(_:) 方法上保存当前日期(UserDefaults)。

application(_:didFinishLaunchingWithOptions:)

上查看

在你的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
    }
}