В iOS 11 используйте WKHTTPCookieStore
, чтобы решить эту проблему. Но для iOS 10 и ниже файлы cookie теряются, когда ajax отправляет междоменный запрос, который не вызывает метод делегирования навигации WKWebView ,, поэтому я не могу добавить файлы cookie в запрос.
Я пробую много методов, которые я нашел, таких как использование WKUserScript, установка файлов cookie для запроса заголовков или оценка JavaScript, но они оба не работают.
И было удивительно, что когда я использую NSURLProtocol
чтобы зарегистрировать http
и https
схему, подобную этой:
[NSURLProtocol wk_registerScheme:@"http"];
[NSURLProtocol wk_registerScheme:@"https"];
+ (void)wk_registerScheme:(NSString *)scheme {
Class cls = ContextControllerClass();
SEL sel = RegisterSchemeSelector();
if ([(id)cls respondsToSelector:sel]) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[(id)cls performSelector:sel withObject:scheme];
#pragma clang diagnostic pop
}
}
запрос может правильно установить куки, даже если я не добавил код о настройке куки, я нене знаю, почему это работает.
Есть ли способ решить эту проблему? Надеюсь, это поможет!