Фон
Я разрабатываю простое приложение для iPad, которое позволяет пользователю одновременно просматривать один и тот же сайт с разными логинами. Поэтому у меня есть два UIWebView
, и у них должно быть другое хранилище файлов cookie, поэтому пользователь может войти в одну учетную запись на первой UIWebView
и другой учетной записи на второй UIWebView
.
Что я пробовал?
Я думаю, что решение состоит в том, чтобы реализовать различные хранилища файлов cookie в двух UIWebView
, которые у меня есть.
Sasmito Adibowo написал статью Внедрение собственного хранилища файлов cookie, в котором содержится подробная информация о том, как использовать пользовательское хранилище cookie для WebView
на Mac.
Это делается путем изменения NSURLRequest, который отправит WebView
, добавив к нему заголовки файлов cookie, а также перехватит ответ из WebView
и извлечет файлы cookie из заголовка ответа и сохранит его в нашем собственном хранилище файлов cookie.
Технически это делается путем реализации этих двух методов делегирования:
- (void)webView:(WebView *)sender resource:(id)identifier didReceiveResponse:(NSURLResponse *)response fromDataSource:(WebDataSource *)dataSource
- (NSURLRequest *)webView:(WebView *)sender resource:(id)identifier willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse fromDataSource:(WebDataSource *)dataSource
Хотя он недокументирован, UIWebView
действительно поддерживает один из вышеперечисленных методов со слегка отличающимся именем метода:
- (NSURLRequest *)uiWebView:(UIWebView *)sender resource:(id)identifier willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse fromDataSource:(id)dataSource
Однако UIWebView
не имеют эквивалентного метода делегирования для webView:resource:didReceiveResponse:fromDataSource:
и, следовательно, я не могу извлечь файлы cookie из заголовков ответов.
Вопрос
Есть ли способ иметь UIWebView
для использования пользовательского хранилища файлов cookie, поэтому два UIWebView
могут иметь собственное хранилище файлов cookie?
Спасибо!