リダイレクト先URL取得できなくなった
今までWKWebViewに対してObserverを使って"loading"時を監視していたが急に取得しなくなった(ver2.2から?)
Delegateでリダイレクトタイミングを取得する
WKNavigationDelegateを使ってリダイレクトのアクション通知を受け取る準備をしてリダイレクト前のURLを読み込みます。
サンプルコード
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
var wkWebView: WKWebView!
let url = NSURL(string: "http://goo.gl/fhjaj2")
override func viewDidLoad() {
super.viewDidLoad()
wkWebView = WKWebView(frame: CGRectZero)
let request = NSURLRequest(URL: url!)
wkWebView.navigationDelegate = self
wkWebView.loadRequest(request)
self.view.addSubview(wkWebView)
}
func webView(webView: WKWebView, didReceiveServerRedirectForProvisionalNavigation navigation: WKNavigation!) {
print(wkWebView.URL?.absoluteString)
}
}
まとめ
http://goo.gl/fhjaj2
はtwitterにリダイレクトします。
モバイルなので2回リダイレクトしています。
Optional("https://twitter.com/")
Optional("https://mobile.twitter.com/")