0
我想使用URLSession
將網頁加載到UIWebView
。iOS - 短暫會話和UIWebView
一個短暫會話,的確,因爲我不想存儲會話,例如,我已經在Twitter/FB /任何網站上登錄。
所以,我有一個名爲UIWebView
webPage
@IBOutlet var webPage: UIWebView!
一個UITextField
,在那裏我可以寫URL
@IBOutlet var urlField: UITextField!
下一步該文本字段,我有一個UIButton
,實現此動作
@IBAction func sendUrl(_ sender: Any) {
let stringUrl = urlField.text
let url = URL (string: stringUrl!)
openPageWithSession(url: url!)
}
和功能openPageWithSession
,這裏我用的是臨時會議
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()
}
網頁這是確定的加載。但是,如果我在Twitter上登錄並在此之後殺了該應用,如果我重新打開該應用並再次導航Twitter,我已經登錄了!
爲什麼?殺死後短暫會話不會失效?
我看到的一個問題是'self.webPage.loadRequest(request)'實際上並不使用你創建的臨時會話,它只是接收原始請求並加載它。 – paulvs
由於'task.resume()'不執行加載,其中'task'是在**短暫會話**上構建的'dataTask'嗎? – strano
而不是'self.webPage.loadRequest(request)',你應該使用'self.webView.load(data !, mimeType:「text/html」,textEncodingName:「」,baseURL:url)''。這樣你將使用你創建的短暫會話。否則,你只是正常加載Web視圖,根本就沒有短暫的會話。 – paulvs