verwaltet In meiner App versuche ich Benutzer über UIWebView anmelden. Bei erfolgreicher Anmeldung werden Cookies in NSHTTPCookieStorage
gesetzt. Nur wenige meiner App-Seiten sind in UIWebView geöffnet.Sitzung wird nicht zwischen UIWebView
Wenn eine Anfrage für eine bestimmte Webseite gesendet wird, überprüft sie anhand der Cookies, ob der Benutzer angemeldet ist oder nicht.
Ich habe überprüft, dass Cookies in NSHTTPCookieStorage
vorhanden sind, aber keine gültigen Cookies auf dem Server sind. Das heißt, Benutzer wird als abgemeldeter Benutzer betrachtet.
zum Laden UIWebView Mein Code ist wie folgt:
let url = serverURL + urlString
let urlRequest = NSMutableURLRequest(URL: NSURL(string: url)!)
webPage.loadRequest(urlRequest)
Auch habe ich versucht, mit NSURLSession
und Cookies als HTTPHeaderField Einstellung. Unten ist auch mein Code dafür:
let URLRequest: NSMutableURLRequest = NSMutableURLRequest(URL: NSURL(string: url)!)
let cookies = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookiesForURL(NSURL(string: serverURL)!)
for cookie in cookies!{
URLRequest.setValue(cookie.value, forHTTPHeaderField: cookie.name)
}
let sessionConfig = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: sessionConfig, delegate: self, delegateQueue: nil)
let task = session.downloadTaskWithRequest(URLRequest)
task.resume()
Es funktioniert für einige Fälle richtig. Ich kann nicht herausfinden, was ein Problem mit den Cookies sein kann.
Jede Hilfe wird geschätzt.
Vielen Dank im Voraus
Versuchen Sie, 'WKWebView' (iOS 8+) zu versuchen. Damit können Sie 'configuration' -Eigenschaften von der zuletzt verwendeten Instanz in eine neu erstellte kopieren und _maybe_ dadurch Cookies speichern. Alternativ können Sie _one_ instance von UIWebView in der gesamten App verwenden. – werediver
Ich bin vor ähnlichen Problem, bitte helfen –