作品分享
问答交流
发现
任务
客服工单
// 存储Cookie NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; NSURL *url = [NSURL URLWithStringDCConfigSet.host]; NSString *IP = url.host; for (NSHTTPCookie *tempCookie in cookies) { if ([tempCookie.domain isEqualToString:IP]) { [QDCUserDefaults setObject:tempCookie.properties forKey"KMobileServiceCookie"]; } }
// 设置Cookie - (void)setWebViewCookie { [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; // 获取cookie信息 NSDictionary *properties = [[NSUserDefaults standardUserDefaults] objectForKey"KMobileServiceCookie"]; NSMutableDictionary *muProperties = [NSMutableDictionary dictionaryWithDictionary:properties]; NSURL *url = [NSURL URLWithStringDCConfigSet.managerHost]; NSString *IP = url.host; [muProperties setValue:IP forKey"Domain"]; NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:muProperties]; [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; // 同步cookie WKHTTPCookieStore *cookieStrore = self.webView.configuration.websiteDataStore.httpCookieStore; NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; for (NSHTTPCookie *cookie in cookies) { if ([cookie.domain isEqualToString:IP]) { [cookieStrore setCookie:cookie completionHandler:nil]; } } }
// 设置webView WKWebViewConfiguration *webConfig = [[WKWebViewConfiguration alloc] init]; // 设置偏好设置 webConfig.preferences = [[WKPreferences alloc] init]; // 默认以为YES webConfig.preferences.javaScriptEnabled = YES; // web内容处置惩罚池 webConfig.processPool = [[WKProcessPool alloc] init]; // 加cookie给h5辨认,表明在iOS端打开该所在 WKUserContentController *userContentController = WKUserContentController.new; WKUserScript *cookieScript = [self injectCookieScript]; [userContentController addUserScript:cookieScript]; webConfig.userContentController = userContentController; DWKWebView *webView = [[DWKWebView alloc] initWithFrame:self.view.bounds configuration:webConfig]; // 通过注入JS办理Cookies差别步的问题 - (WKUserScript *)injectCookieScript { WKUserScript *userScript = [[WKUserScript alloc] initWithSource:[self cookieString] injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO]; return userScript; } // 拼接cookie字符串 - (NSString *)cookieString { [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; // 获取cookie信息 NSDictionary *properties = [[NSUserDefaults standardUserDefaults] objectForKey"KMobileServiceCookie"]; NSMutableDictionary *muProperties = [NSMutableDictionary dictionaryWithDictionary:properties]; NSURL *url = [NSURL URLWithStringDCConfigSet.managerHost]; NSString *IP = url.host; [muProperties setValue:IP forKey"Domain"]; NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:muProperties]; [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; NSMutableString *script = [NSMutableString string]; [script appendString"var cookieNames = document.cookie.split('; ').map(function(cookie) { return cookie.split('=')[0] } );\n"]; for (NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) { if ([cookie.value rangeOfString"'"].location != NSNotFound) { continue; } if ([cookie.domain isEqualToString:IP]) { NSString *string = [NSString stringWithFormat"%@=%@;domain=%@;path=%@", cookie.name, cookie.value, cookie.domain, cookie.path ?: @"/"]; [script appendFormat"if (cookieNames.indexOf('%@') == -1) {document.cookie='%@'; };\n", cookie.name, string]; } } return script; }
举报
本版积分规则 回帖后跳转到最后一页
Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )
GMT+8, 2025-8-24 05:29, Processed in 0.136040 second(s), 35 queries.© 2003-2025 cbk Team.