2014-09-11 13 views
23

Ich erstelle ein paar WkWebViews in meiner App, aber wenn Cookies für eine Webansicht gesetzt sind, werden sie in den anderen nicht wirksam (dh die anderen Webviews geben das gleiche Cookie nicht an den Server zurück)). Wie kann ich erreichen, dass alle denselben Cookie-Speicher verwenden?Cookie-Sharing zwischen mehreren WKWebViews

Antwort

46

Haben Sie das funktioniert mit dem gleichen WKProcessPool für alle Webviews.

Erster einen Prozess-Pool erstellen einmal irgendwo:

processPool = [[WKProcessPool alloc] init]; 

dann verwenden, wenn WKWebviews zu schaffen. Der Pool muss in der init-Methode festgelegt werden, nicht danach.

WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]; 
config.processPool = processPool; 
webview = [[WKWebView alloc] initWithFrame:frame configuration:config]; 
+1

Danke. Es funktionierte in meinem Fall, wo ich Hybrid-App habe. Die Login-Webseite speichert Cookies im Singleton-Prozesspool und später auf der anderen Seite Cookies (Session-ID, Authentifizierungsdaten) vom selben Singleton-Prozesspool. – harshit2811

+0

Weißt du, wird es die Leistung von WKWebView beeinflussen, wenn du zwei gleichzeitig lädst? – Balki

+3

auf iOS10, Cookies werden standardmäßig zwischen mehreren WKWebView geteilt. Ich habe dies auf iOS10 Simulator verifiziert, aber nicht sicher, ob es wahr ist oder nicht auf iOS8/9 – ikzjfr0

Verwandte Themen