2014-09-11 3 views
23

Creo alcune WkWebViews nella mia app, ma quando i cookie sono impostati per una webview, non hanno effetto negli altri (cioè le altre visualizzazioni web non restituiscono lo stesso cookie al server). Come posso convincerli a utilizzare tutti la stessa memorizzazione dei cookie?Condivisione di cookie tra più WKWebViews

risposta

46

Ha funzionato utilizzando lo stesso WKProcessPool per tutte le visualizzazioni Web.

Innanzitutto creare un pool di processi volta da qualche parte:

processPool = [[WKProcessPool alloc] init]; 

poi usarlo durante la creazione WKWebviews. Il pool deve essere impostato nel metodo init, non in seguito.

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

Grazie. Ha funzionato nel mio caso in cui ho un'app ibrida. La pagina di accesso memorizza i cookie nel processpool di singleton e in seguito in un'altra pagina raccoglierà i cookie (sessionid, authenticationdata) dallo stesso processpool di singleton. – harshit2811

+0

Sai, influirà comunque sulle prestazioni di WKWebView se ne stai caricando due allo stesso tempo? – Balki

+3

su iOS10, per impostazione predefinita, i cookie sono condivisi tra più WKWebView. Ho verificato questo sul simulatore iOS10, ma non sono sicuro che sia vero o no su iOS8/9 – ikzjfr0