Osadzam WKWebView w mojej aplikacji. Używa pliku cookie sesji PHP do identyfikacji użytkownika. I dostać ciasteczko sesji z poniższej rozmowy:WKWebView nie wysyła pliku cookie sesji
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[NSJSONSerialization dataWithJSONObject:jsonobject options:0 error:&err]];
NSHTTPURLResponse *response = nil;
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];
opiera się na tym: Can I set the cookies to be used by a WKWebView? dodam cookies do dokumentu
for (NSHTTPCookie* cookie in [NSHTTPCookieStorage sharedHTTPCookieStorage].cookies)
{
NSString *javascript = [NSString stringWithFormat:@"document.cookie = '%@=%@';", [cookie name], [cookie value]];
WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
WKUserContentController *ucController = [[WKUserContentController alloc] init];
WKProcessPool *processPool = [[WKProcessPool alloc] init];
config.processPool = processPool;
config.userContentController = ucController;
[ucController addUserScript:[[WKUserScript alloc] initWithSource:javascript injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO]];
}
I ręcznie ustawić ciasteczko sesji w pierwotnym wniosku obciążenia:
NSMutableURLRequest *pageLoadRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[pageLoadRequest setHTTPMethod:@"GET"];
[pageLoadRequest setHTTPShouldHandleCookies:YES];
[pageLoadRequest setAllHTTPHeaderFields:[NSHTTPCookie requestHeaderFieldsWithCookies:[NSHTTPCookieStorage sharedHTTPCookieStorage].cookies]];
[_webView loadRequest:pageLoadRequest];
Mój problem polega na tym, że żądania AJAX nie zawierają pliku cookie sesji.
Być może duplikat z moją odpowiedzią [tutaj] (https://stackoverflow.com/a/46822550/4712692) – Xingxing