Приватный просмотр с UIWebView на iPhone и iPad - PullRequest
4 голосов
/ 14 июня 2010

Как существующие приложения реализуют эту функцию ???

Могу ли я сохранять файлы cookie только для определенных сайтов и только внутри моего приложения?Насколько я понимаю, в веб-представлении хранятся файлы cookie в режиме совместного использования, поэтому они используются совместно с Safari и другими приложениями, использующими UIWebView.

Ответы [ 2 ]

5 голосов
/ 23 июня 2010

Согласно NSHTTPCookieStorage документам , файлы cookie не распределяются между приложениями:

iPhone OS Примечание. Файлы cookie не передаются приложениям в iPhone OS.

Похоже, по умолчанию они должны быть "частными".Вы также можете использовать объект [NSHTTPCookieStorage sharedHTTPCookieStorage], чтобы политика хранения файлов cookie вообще не сохраняла файлы cookie, или использовать метод deleteCookie: для очистки после себя, если вам нужно.

Что касается другихсодержимое, которое загружается вашим UIWebview. Когда вы создаете NSURLRequest, который загружается вашим веб-представлением, вы можете установить политику кэширования, которая контролирует, будет ли содержимое кэшироваться.Например:

NSURLRequest * request = [NSURLRequest requestWithURL: [NSURL URLWithString: url]
                                          cachePolicy: NSURLRequestReloadIgnoringLocalAndRemoteCacheData
                                       timeoutInterval: 60.0]
[webView loadRequest: request];

NSURLRequestReloadIgnoringLocalAndRemoteCacheData предписывает запросу игнорировать кэш и загружать запрос из сети.Я не уверен, что он также предотвращает кеширование ответа от сети, но, конечно, вы всегда можете удалить его из кэша:

[NSURLCache sharedURLCache] removeCachedResponseForRequest:request];
4 голосов
/ 18 июня 2010

Если вы говорите о приватном просмотре, UIWebView фактически не сохраняет историю после закрытия приложения (только временный для перехода туда-сюда).Вместо этого вам нужно было бы реализовать хранение истории самостоятельно, так что это будет автоматически Приватный просмотр.

Краткий ответ: ничего не делать.Он уже находится в режиме частного просмотра.

РЕДАКТИРОВАТЬ: Для обработки кэша проверить этот метод:

- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse

И заставить cashedResponse вернуть nil.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...