Я понимаю, что с iOS9 вы должны иметь возможность читать файлы cookie с помощью SFSafariViewController.SFSafariViewController cookie
Если установить куки на моей странице в JS с помощью следующих действий:
var dd = new Date(Date.now() + 1000 * 60 * 60 * 24).toGMTString();
var expires = "expires="+ dd;
document.cookie = "mycookie=cookievalue; " + expires + " domain=.mydomain.co.uk ; path=/ ";
Если я:
- (void)safariViewController:(SFSafariViewController *)controller didCompleteInitialLoad:(BOOL)didLoadSuccessfully
{
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *cookiesArray = [storage cookies];
}
cookiesArray всегда пусто.
Если я использую традиционный UIWebView
-(void)webViewDidFinishLoad:(UIWebView *)webView
{
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *cookiesArray = [storage cookies];
}
Я получаю печенье я ожидал.
Любые идеи, что я могу делать неправильно?
Спасибо за возвращение ко мне, но в соответствии с: https://developer.apple.com/reference/safariservices/sfsafariviewcontroller Контроллер вида включает в себя функцию Safari, такие как Reader, автозаполнение, мошенническим обнаружение веб-сайте, а также блокирование контента. Он включает файлы cookie и другие данные веб-сайта с Safari. Активность пользователя и взаимодействие с SFSafariViewController не отображаются в вашем приложении, которое не может получить доступ к данным AutoFill, истории просмотра или данным веб-сайта. Вам не нужно защищать данные между вашим приложением и Safari. –
Вы не понимаете, что значит сказать, что SFSafariViewController «передает файлы cookie и другие данные сайта с помощью Safari». SFSafariViewController - это пример Safari. Это не часть вашего приложения. Он обращается к песочнице Safari данных (файлы cookie, автозаполнение и т. Д.), Это не ваше приложение, которое делится этими данными с Safari. Ваше приложение не имеет доступа к любой из защищенных данных в Safari, включая файлы cookie. Если вам нужно иметь доступ к файлам cookie веб-сайтов в вашем приложении, SFSafariViewController не является правильным выбором. – wottle
Вы подтвердили свой ответ в своем коде. NSHTTPCookieStorage будет пустым, если вы получите доступ к веб-сайту в SFSafariViewController. SFSafariViewController использует его, но не для того, что вы пытаетесь сделать. – wottle