我目前的PandoraMan版本存在一些问题(http://github.com/zquestz/PandoraMan)。一切都是功能性的,窗口位置正在保存,所有基本功能都有效,但是我看到了一个错误。
当我登录Pandora时,它永远不会被保留。我假设它读取系统cookie并与Safari共享状态。旧版本(在10.4上使用古老的xcode)运行良好。
如果我启动应用程序并使用PandoraMan登录,它会登录,并且网站正常工作。但是当我重新启动应用程序时,我总是要再次登录。这从未发生过,我在文档中找不到有关此问题的任何内容。
如果有人对这个问题有一些了解,那就太棒了。代码是开源的,因此您可以检查问题,而无需在评论中来回反复代码。
答案 0 :(得分:1)
您的应用程序在[NSHTTPCookieStorage sharedHTTPCookieStorage]容器中有自己的“cookie jar”。
以下是如何快速查看应用程序的cookie jar中的cookie:
NSHTTPCookie *cookie;
NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (cookie in [cookieJar cookies]) {
NSLog(@"%@", cookie);
}
有几种方法可用于过滤和操作。查看用于访问cookie的NSHTTPCookieStorage文档,以及用于访问各个cookie属性的NSHTTPCookie文档
可能这可以帮助你解决问题。
答案 1 :(得分:1)
Pandora使用localStorage来保留用户状态。使用此:
WebPreferences* prefs = [WebPreferences standardPreferences];
[prefs _setLocalStorageDatabasePath:@"~/Library/Application Support/MyApp"];
[prefs setLocalStorageEnabled:YES];
[self.webView setPreferences:prefs];
将这些添加到文件的开头:
@interface WebPreferences (WebPreferencesPrivate)
- (void)_setLocalStorageDatabasePath:(NSString *)path;
- (void)setLocalStorageEnabled:(BOOL)localStorageEnabled;
@end
更多:How do I enable Local Storage in my WebKit-based application?