Это правильный способ настроить внедрение cookie, а затем перезагрузить WKWebView?
В моей ситуации, сначала в конфигурационный файл cookie вставка, а затем создание WKWebView работает нормально, cookie был введен.
Мне нужно добавить новый файл cookie после загрузки веб-просмотра. но почему-то, похоже, не удалось.
Вот пример кода:
1. Создать веб-просмотр
- (WKWebView *)webView {
if (!_webView) {
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
configuration.userContentController = [WKUserContentController new];
configuration.preferences = [WKPreferences new];
configuration.preferences.javaScriptEnabled = YES;
_webView = [[WKWebView alloc] initWithFrame:self.view.bounds configuration:configuration];
_webView.scrollView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
[_webView addObserver:self forKeyPath:@"estimatedProgress" options:NSKeyValueObservingOptionNew context:nil];
for (NSString *msgName in self.msgNames) {
[configuration.userContentController addScriptMessageHandler:self name:msgName];
}
}
return _webView; }
2. Конфигурация печенья
- (void)configCookieInjection {
NSMutableString *cookieSource = [NSMutableString string];
for (NSHTTPCookie *cookie in [NSHTTPCookieStorage sharedHTTPCookieStorage].cookies) {
[cookieSource appendFormat:@"document.cookie = '%@=%@';", cookie.name, cookie.value];
}
if (cookieSource.length > 0) {
[self.webView.configuration.userContentController removeAllUserScripts];
WKUserScript *cookieInjectionScript = [[WKUserScript alloc]
initWithSource:cookieSource
injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO];
[self.webView.configuration.userContentController addUserScript:cookieInjectionScript];
} }
3.Вход и повторный ввод , в методе делегата входа
- (void)userLoginRegisterSuccessOperationType:(JCUserOperationType)type info:(JCUserLoginResponseModel *)info {
[self configCookieInjection];
[self.webView reload]; }
Я делаю что-то неправильно?
В чем разница между добавлением файлов cookie в HTTPRequestHeaders и Inject to webView?