如何检查应用程序是否在前台但在特定时间未访问 - iOS
How to check if an app is in foreground but not accessed for a specific time - iOS
我正在 Swift 2.0 中开发一个使用 http 请求的应用程序。我正在将校验和值传递给请求。一旦用户登录,此校验和由 Web 服务器生成。一旦 3 小时未使用,校验和值将刷新。由于校验和值的变化,我遇到了一个问题。问题是,会话过期,用户需要重新登录才能使用该应用程序。
当应用程序进入后台(最小化)并重新打开时,我正在 applicationDidBecomeActive
方法中重新生成校验和。我用 applicationDidEnterBackground
记下时间。如果记录的时间超过 3 小时,那么我将重新生成校验和值。在这种情况下它工作正常。
当应用程序处于前台并且超过3小时未访问(应用程序是理想的)时出现问题。
在这种情况下,我应该在哪里重新生成校验和?是否有任何可用的 AppDelegate 方法?
视图生命周期中没有在应用程序处于前台模式且未导航其他页面的情况下在最长时间内调用的方法。所以设置计时器可以解决您的问题并提示用户 "Session Expired " 警报,当用户点击它时,只需点击网络 API 并相应地刷新 UI 。
谢谢。
我正在 Swift 2.0 中开发一个使用 http 请求的应用程序。我正在将校验和值传递给请求。一旦用户登录,此校验和由 Web 服务器生成。一旦 3 小时未使用,校验和值将刷新。由于校验和值的变化,我遇到了一个问题。问题是,会话过期,用户需要重新登录才能使用该应用程序。
当应用程序进入后台(最小化)并重新打开时,我正在 applicationDidBecomeActive
方法中重新生成校验和。我用 applicationDidEnterBackground
记下时间。如果记录的时间超过 3 小时,那么我将重新生成校验和值。在这种情况下它工作正常。
当应用程序处于前台并且超过3小时未访问(应用程序是理想的)时出现问题。
在这种情况下,我应该在哪里重新生成校验和?是否有任何可用的 AppDelegate 方法?
视图生命周期中没有在应用程序处于前台模式且未导航其他页面的情况下在最长时间内调用的方法。所以设置计时器可以解决您的问题并提示用户 "Session Expired " 警报,当用户点击它时,只需点击网络 API 并相应地刷新 UI 。
谢谢。