我想使用UIWebView
将网页加载到URLSession
。
短暂会话,的确,因为我不想存储会话,例如,如果我在Twitter / FB /任何网站上登录。
所以,我有一个名为UIWebView
webPage
@IBOutlet var webPage: UIWebView!
一个UITextField
,我可以在那里写下网址
@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,我已经登录了!
为什么呢?短暂的会话在杀人后不会失效吗?
答案 0 :(得分:1)
来自上述评论。
而不是self.webPage.loadRequest(request)
,您应该使用:
self.webView.load(data, mimeType: "text/html", textEncodingName: "", baseURL: url).
这样您就可以使用自己创建的短暂会话了。否则,您只是正常加载Web视图,而根本没有短暂的会话。