我需要實現計費邏輯。它執行一些重定向,然後在新窗口中打開新框架 - 這就是它在Web瀏覽器上的工作原理。在多個WKWebView之間共享會話
我在WKWebView中顯示帳單框架。我捕捉到了想要打開新框架(navigationAction.targetFrame.isNil)並要求webView加載新請求的時刻。新框架正在加載,但一些重定向沒有發生,並且帳單顯示我有錯誤。看起來會話丟失了。
我試過另一種方式:在新的webView中加載新的請求。當我初始化webView時,我從前面的那個傳遞processPull,按照這篇文章:https://github.com/ShingoFukuyama/WKWebViewTips#cookie-sharing-between-multiple-wkwebviews問題沒有解決。
lazy var webView: WKWebView = { [unowned self] in
let preferences = WKPreferences()
preferences.javaScriptEnabled = true
preferences.javaScriptCanOpenWindowsAutomatically = true
let configuration = WKWebViewConfiguration()
configuration.preferences = preferences
let webView = WKWebView(frame: CGRect.zero, configuration: configuration)
webView.navigationDelegate = self
webView.UIDelegate = self
webView.estimatedProgress
webView.scrollView.backgroundColor = UIColor.binomoDarkGrey()
self.view.addSubview(webView)
webView.snp_makeConstraints { [unowned self] (make) in
make.edges.equalTo(self.view)
}
return webView
}()
// MARK: WKNavigationDelegate
func webView(webView: WKWebView, decidePolicyForNavigationAction navigationAction: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) {
if navigationAction.targetFrame.isNil {
decisionHandler(.Cancel)
webView.loadRequest(navigationAction.request)
} else {
decisionHandler(.Allow)
}
}
嗨亞歷克斯:你到底解決了嗎? –
@JoergSimon是的,只需發佈並在下面回答。 – AlexEdunov