我希望通过在后台刷新令牌来延长访问令牌的到期时间。当前的到期时间设置为30分钟(服务器端),并且该值不可更改,其想法是每29分钟我将调用一个刷新访问令牌的方法,以使访问令牌再保留1个半小时(表示访问令牌可以保持将近2个小时)。我已经读到,如果需要更多时间才能使用UIKit,则后台任务最多需要5秒钟才能完成,尽管这样做只会再花几分钟来完成所需的任务。
是否有任何特殊情况允许我在后台执行此操作,或者有更好的方法来执行此操作?谢谢您的帮助!
答案 0 :(得分:-1)
在AppDelegate.swift中执行此操作。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
Timer.scheduledTimer(timeInterval: (60.0 * 29.0), target: self, selector: #selector(self.doThisEvery29Min), userInfo: nil, repeats: true)
return true
}
@objc func doThisEvery29Min () {
if Constant.uToken != nil {
ServiceManager.sharedInstance.RefreshTokens() {
(result) in
switch result {
case .Success(let responce):
// update token
case .FailureDueToService(let error):
print(error)
break
case .Failure(let error):
print(error)
break
}
}
}
}