【发布时间】:2017-04-08 17:57:48
【问题描述】:
我需要实现计费逻辑。它会进行一些重定向,然后在新窗口中打开新框架——这就是它在网络浏览器上的工作方式。
我在 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)
}
}
【问题讨论】:
-
嗨,Alex:你最后解决了吗?
-
@JoergSimon 是的,刚刚发布并在下面回答。
标签: ios swift wkwebview wkwebviewconfiguration