iOS - Ephemeral Session和UIWebView

时间:2017-07-17 16:28:49

标签: ios swift uiwebview nsurlsession

我想使用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,我已经登录了!

为什么呢?短暂的会话在杀人后不会失效吗?

1 个答案:

答案 0 :(得分:1)

来自上述评论。

而不是self.webPage.loadRequest(request),您应该使用:

self.webView.load(data, mimeType: "text/html", textEncodingName: "", baseURL: url).

这样您就可以使用自己创建的短暂会话了。否则,您只是正常加载Web视图,而根本没有短暂的会话。