ios - 有什么方法可以知道我的 iPhone 应用程序没有使用 swift 打开多久?

标签 ios swift

我正在开发一款健康应用程序。如果用户在一段时间内(例如几天、一周或几个月)没有打开应用程序,我必须从计步器或 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/

相关文章:

ios - 在 UITextView 中着色 NSMutableAttributedString 给出奇怪的结果

ios - TableView 中每个单元格的数据重复

ios - 如何在解析查询结束时仅重新加载一次 TableView ?

ios - 右键单击MenuIcon

ios - 如何在 UICollectionView 上设置高度/保持 UICollectionView 的高度不在模拟器中扩展

iOS 获取 UINavigationBar 的后退按钮以设置辅助功能属性

ios - 我想将我的应用程序发送给一些测试人员。我可以在不将其提交到 AppleStore 或类似的地方的情况下执行此操作吗?

ios - 我可以提供 SDWebImageCache 的 URL 以从缓存或下载返回图像吗?

ios - 无法在iOS11中设置提示颜色

ios - 我们如何在不将 ViewController 对象插入其中的情况下将对象分配到 `UINavigationController`。?