Ich möchte eine Webseite in eine UIWebView
laden, mit URLSession
.iOS - Ephemere Sitzung und UIWebView
Eine ephemere Sitzung, in der Tat, weil ich nicht gerne die Sitzung speichern würde, wenn ich zum Beispiel eine Anmeldung auf Twitter/FB/was auch immer Website.
So habe ich eine UIWebView
namens webPage
@IBOutlet var webPage: UIWebView!
einem UITextField
, wo ich
@IBOutlet var urlField: UITextField!
Neben diesem Textfeld die URL schreiben kann, habe ich eine UIButton
, dass Geräte Diese Aktion
@IBAction func sendUrl(_ sender: Any) {
let stringUrl = urlField.text
let url = URL (string: stringUrl!)
openPageWithSession(url: url!)
}
und die Funktion openPageWithSession
, wo ich die ephemeren Sitzung
func openPageWithSession(url: URL){
let request = URLRequest(url: url)
let ephemeralConfiguration = URLSessionConfiguration.ephemeral
let ephemeralSession = URLSession(configuration: ephemeralConfiguration)
let task = ephemeralSession.dataTask(with: request) { (data, response, error) in
if error == nil {
self.webPage.loadRequest(request)
} else {
print("ERROR: \(error)")
}
}
task.resume()
}
Das Laden der Webseite ok es ist verwenden. Aber wenn ich ein Login auf Twitter habe und danach die App kill, wenn ich die App wieder öffne und wieder auf Twitter navigiere, bin ich schon eingeloggt!
Warum? Die ephemere Sitzung ist nach einem Kill nicht ungültig?
Ein Problem, das ich sehe, ist, dass 'self.webPage.loadRequest (request)' tatsächlich nicht die ephemere Sitzung verwendet, die Sie überhaupt erstellt haben, es nimmt nur die ursprüngliche Anfrage und lädt sie. – paulvs
Führt das Laden nicht dank 'task.resume()' durch, wobei 'task' eine' dataTask' ist, die auf der ** ephemeren Sitzung ** aufgebaut ist? – strano
Anstelle von 'self.webPage.loadRequest (request)' sollten Sie 'self.webView.load (data !, mimeType:" text/html ", textEncodingName:" ", baseURL: url)' verwenden. Auf diese Weise werden Sie die von Ihnen erstellte ephemere Sitzung verwenden. Andernfalls laden Sie die Webansicht normal, ohne die kurzlebige Sitzung. – paulvs