私はURLSession
を使用して、UIWebView
にウェブページをロードしたいと思います。iOSの - エフェメラルセッションとのUIWebView
はかないセッション、確かに、私は例えば、私はツイッター/ FB /どんなサイト上でログインをした場合など、セッションを保存したくないので。だから、
、私は、私はUIButton
を私はこのテキストフィールドにURL
@IBOutlet var urlField: UITextField!
次を書くことができますwebPage
@IBOutlet var webPage: UIWebView!
UITextField
、名前のUIWebView
きましたが、実装していることこの行動
@IBAction func sendUrl(_ sender: Any) {
let stringUrl = urlField.text
let url = URL (string: stringUrl!)
openPageWithSession(url: url!)
}
と私はそれは大丈夫だ、Webページの読み込みはかないセッションに
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()
}
を使用する機能openPageWithSession
、。私がTwitterでログインをしましたし、その後、私はアプリを殺す場合、私は再びTwitterにアプリを再度開くとナビゲートしている場合しかし、私はすでにログインしています!
なぜですか?一時的なセッションは殺害の後無効になりませんか?上記のコメントから
「self.webPage.loadRequest(request)」は、あなたが作成した一時セッションを実際には使用しないということです。ただ、元のリクエストを受け取りロードするだけです。 – paulvs
は(task.resume 'への負荷のおかげを行いません)' 'どこtask'は' dataTask'が** **短期セッション上に構築されたのですか?代わりに、 'self.webPage.loadRequest(リクエスト)の – strano
'は、 'self.webView.load(データ!、MIMEタイプURL: "text/htmlの"、textEncodingName: ""、ベースURL)を使用する必要があります'。そうすることで、作成した一時セッションを使用することになります。そうしないとあなただけでは、すべてのはかないセッションせずに、通常のWebビューをロードしています。 – paulvs