我想使用 URLSession
将网页加载到 UIWebView
。
确实是临时 session ,因为如果我在 Twitter/FB/任何网站上登录,我不想存储 session 。
所以,我有一个名为 webPage
的 UIWebView
@IBOutlet var webPage: UIWebView!
一个 UITextField
,我可以在其中写入 URL
@IBOutlet var urlField: UITextField!
在这个文本字段旁边,我有一个UIButton
,它实现了这个 Action
@IBAction func sendUrl(_ sender: Any) {
let stringUrl = urlField.text
let url = URL (string: stringUrl!)
openPageWithSession(url: url!)
}
和函数 openPageWithSession
,我在其中使用了临时 session
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,我就已经登录了!
为什么?临时 session 在被杀死后不会失效?
最佳答案
来自上面的评论。
代替 self.webPage.loadRequest(request)
,您应该使用:
self.webView.load(data, mimeType: "text/html", textEncodingName: "", baseURL: url).
这样您就可以使用您创建的临时 session 。否则,您只是正常加载 WebView ,根本没有短暂的 session 。
关于iOS - 临时 session 和 UIWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45149269/