【发布时间】:2011-02-17 22:17:37
【问题描述】:
有很多关于使用带有缓存和/或 cookie 的 UIWebView 的线程,但它们似乎都与远程 URL 相关。
当“显示本地内容”(iPhone 文档称它为)时,我无法让 cookie 工作。
例如,如果我从我的捆绑资源中加载一个普通的旧 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 似乎不会持续存在。
【问题讨论】:
标签: iphone cookies uiwebview local