Существует множество потоков об использовании UIWebView с кэшами и / или файлами cookie, но, похоже, все они связаны с удаленными URL-адресами.
Я не могу заставить файлы cookie работать при «отображении локального контента» (как его называют в документах iPhone).
Например, если я загружаю простой старый HTML-файл из моего ресурса пакета:
- (void) viewDidLoad {
[super viewDidLoad];
NSString* path = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"];
NSURL* url = [NSURL fileURLWithPath:path];
NSData* data = [NSData dataWithContentsOfFile:path];
[web loadData:data MIMEType:@"text/html" textEncodingName:@"us-ascii" baseURL:url];
}
, то:
- (void) webViewDidFinishLoad:(UIWebView*)webView {
NSString* result = [web stringByEvaluatingJavaScriptFromString:
@"try{document.cookie='name=value';''+document.cookie;}catch(e){''+e}"];
NSLog(@"Result = '%@'", result);
}
Результат:
Result = ''
Установка URL-адреса в качестве действительного имени файла, а не каталога не позволяет получить: Result = 'Error: SECURITY_ERR: DOM Exception 18'
, но файлы cookie, похоже, не сохраняются.