2017-09-15 38 views
0

誰でもSwiftでWKProcessPoolを作成する方法を教えてください。私はObjective-Cに慣れていません。 すべてのWKWebViewとCookieを共有するには、WKProcessPoolを作成する必要があります。同じクラスの別のビューコントロールを表示していてもクッキーを保持したい私は以下を試しましたが、うまくいきません。SwiftのWKWebView用のWKProcessPoolを使用した共有Cookie

import UIKit 
import WebKit 

class ViewController: UIViewController, WKNavigationDelegate { 
    var webView = WKWebView() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let processPool = WKProcessPool() 
     let configuration = WKWebViewConfiguration() 
     configuration.processPool = WKProcessPool() 

     webView.navigationDelegate = self 
     view.addSubview(webView) 
    } 
} 

答えて

1

processpoolの代わりにconfiguration.websiteDataStoreプロパティを使用する必要があります。

保存されたクッキーには、WKWebsiteDataStore.default()値を使用します。 プライベートブラウズでは、WKWebsiteDataStore.nonPersistent()を使用します。

+0

返信いただきありがとうございますEldar!これは私のための正しい解決策でなければなりません!私はWKWebsiteDataStore.default()メソッドを実装しようとしました。 'configure = WKWebViewConfiguration() configuration.websiteDataStore = WKWebsiteDataStore.default() webView = WKWebView(フレーム:CGRect.zero、configuration:configuration)'しかし、この設定を別のクラスからどうやってアクセスするのですか?他のWKWebViewではログインしたままでいますか? – Stef

+0

これはセグを使用して可能ですか? – Stef

+0

@Stefプロパティ 'configuration'を使用すると、webViewの初期設定を取得できます。 WKWebsiteDataStore.default()は、シングルトンオブジェクトを返します。新しく作成されたすべてのWebビューに対してこのシングルトンを使用するだけです。 –

関連する問題