Потеря файлов cookie для входа в WKWebview при междоменных запросах Ajax - PullRequest
0 голосов
/ 01 ноября 2019

В 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
    }
}

запрос может правильно установить куки, даже если я не добавил код о настройке куки, я нене знаю, почему это работает.

Есть ли способ решить эту проблему? Надеюсь, это поможет!

...