私は請求ロジックを実装する必要があります。それはいくつかのリダイレクトを行い、新しいウィンドウで新しいフレームを開きます - それは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