2017-09-15 1 views
0

Kann mir bitte jemand sagen, wie man einen WKProcessPool in Swift erstellen? Ich kenne Objective-C nicht. Ich muss einen WKProcessPool erstellen, um Cookies mit allen WKWebViews zu teilen. Ich möchte Cookies behalten, auch wenn ich einen anderen Viewcontroller mit derselben Klasse zeige. Ich habe Folgendes versucht, aber es funktioniert nicht.Gemeinsame Cookies mit WKProcessPool für WKWebView in Swift

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) 
    } 
} 

Antwort

1

Sie müssen configuration.websiteDataStore-Eigenschaft anstelle von processpool verwenden.

Verwenden Sie für die gespeicherten Cookies den Wert WKWebsiteDataStore.default(). Verwenden Sie für das private Browsen WKWebsiteDataStore.nonPersistent().

+0

Vielen Dank für Ihre Antwort Eldar! Das sollte die richtige Lösung für mich sein! Ich habe versucht, die Methode WKWebsiteDataStore.default() zu implementieren. 'let configuration = WKWebViewConfiguration() configuration.websiteDataStore = WKWebsiteDataStore.default() webView = WKWebView (frame: CGRect.zero, Konfiguration: Konfiguration)' Aber wie greife ich auf diese Konfiguration von einer anderen Klasse zu, damit diese Cookies verwendet werden im anderen WKWebView und bleibst du eingeloggt? – Stef

+0

Ist dies mit einem Segment möglich? – Stef

+0

@Stef Sie können die Eigenschaft 'configuration' verwenden, um die Erstkonfiguration von webView zu erhalten. WKWebsiteDataStore.default() gibt ein Singleton-Objekt zurück. Sie müssen dieses Singleton nur für alle neu erstellten Webansichten verwenden. –

Verwandte Themen