我正在开发一款健康应用程序。如果用户在一段时间内(例如几天、一周或几个月)没有打开应用程序,我必须从计步器或 HealthKit 访问用户的健康数据。当我的应用程序再次运行时,有什么方法可以知道应用程序未打开的时间有多久?
最佳答案
是的,有。您可以在应用关闭时保存“当前日期”。
func applicationWillTerminate(_ application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
UserDefaults.standard.set(Date(), forKey: "Date")
}
然后,当应用程序启动时,获取当前日期并与“日期”
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
let passedTime : TimeInterval = Date().timeIntervalSince(UserDefaults.standard.object(forKey: "Date") as! Date)
}
如果不希望用户更改它,您还可以从某个服务器获取 Date()
。
编辑:根据 Leo Dabus 的建议,您可以检查 UserDefaults 是否以这种方式存在(以及许多其他方式)
if let userDefaultDate = UserDefaults.standard.object(forKey: "Date") {
// Present
} else {
// First time
}
关于ios - 有什么方法可以知道我的 iPhone 应用程序没有使用 swift 打开多久?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60023584/