如果需要从“URL2”的后续请求有自己的cookies设置,你可以在文档尝试使用“WKUserScript
”来通过JavaScript编程设定的值开始像这样:如果你
WKUserContentController* userContentController = WKUserContentController.new;
WKUserScript * cookieScript = [[WKUserScript alloc]
initWithSource: @"document.cookie = 'TeskCookieKey1=TeskCookieValue1';document.cookie = 'TeskCookieKey2=TeskCookieValue2';"
injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO];
// again, use stringWithFormat: in the above line to inject your values programmatically
[userContentController addUserScript:cookieScript];
WKWebViewConfiguration* webViewConfig = WKWebViewConfiguration.new;
webViewConfig.userContentController = userContentController;
WKWebView * webView = [[WKWebView alloc] initWithFrame:CGRectMake(/*set your values*/) configuration:webViewConfig];
然而,要求你的cookies要在初始加载请求设置,你可以把它们放在NSMutableURLRequest像这样:
WKWebView * webView = /*initialization stuff*/
NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"YOUR URL"]];
[request addValue:@"TestCookieKey1=TestCookieValue1;TestCookieKey2=TestCookieValue2;" forHTTPHeaderField:@"Cookie"];
// use stringWithFormat: in the above line to inject your values programmatically
[webView loadRequest:request];
你可以结合以上两种技术从天然环境中转移Cookie值的WebView环境。
您可以参考此link获取有关cookie的更多高级信息。
看起来像一个副本https://stackoverflow.com/questions/40659341/wkwebview-cant-carry-cookie-for-302-redirect 虽然没有解决! –