Как сохранить сеанс входа в систему при использовании uiwebview?Мой код ниже не работает, когда я вошел в систему через веб-сайт https (работает нормально с веб-сайта http):
func saveC() {
let arr = NSMutableArray()
if let cookies = cookieJar.cookies {
for c in cookies {
arr.add(c)
}
let data: Data = NSKeyedArchiver.archivedData(withRootObject: arr)
let ud: UserDefaults = UserDefaults.standard
ud.set(data, forKey: "restoreCookie")
ud.synchronize()
}
}
func loadC() {
let ud: UserDefaults = UserDefaults.standard
let data: Data? = ud.object(forKey: "restoreCookie") as? Data
if let cookie = data {
let datas: NSArray? = NSKeyedUnarchiver.unarchiveObject(with: cookie) as? NSArray
if let cookies = datas {
for c in cookies {
if let cookieObject = c as? HTTPCookie {
HTTPCookieStorage.shared.setCookie(cookieObject)
}
}
}
}
}
В applicationDidEnterBackground и applicationWillTerminate я использую saveC () для сохранения текущего сеанса.
func applicationDidEnterBackground(_ application: UIApplication) {
Config.shared.saveC()
}
func applicationWillTerminate(_ application: UIApplication) {
Config.shared.saveC()
}
В didFinishLaunchingWithOptions я использую loadC () для сеанса восстановления.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
Config.shared.loadC()
return true
}
Но когда я перезагружаю приложение над кодом, он работает нормально, но uiwebview не принимает cookie, поэтому его принудительный выход из системы.