2011-11-23 88 views
5

與我目前版本的PandoraMan(http://github.com/zquestz/PandoraMan)有幾個問題。一切功能的大部分功能,窗口位置正在保存,所有必要的功能工作,但我看到一個錯誤。Cookies /可可狀態WebView未被保存

當我登錄到Pandora時,它永遠不會被保存。我假設它讀取系統cookie並與Safari共享狀態。舊版本(在10.4上使用古代的xcode)工作得很好。

如果我使用PandoraMan啓動應用程序並登錄,它將登錄並且該網站正常工作。但是,當我重新啓動應用程序時,我總是需要重新登錄。這從來沒有發生過,我在文檔中找不到關於此問題的任何內容。

如果有人對這個問題有一些瞭解,這將是太棒了。該代碼是開源的,所以你可以檢查這個問題,而不用在代碼中來回跳動代碼。

+0

我嘗試了一些其他網站,一切比潘多拉其他我能保持我的登錄...這越來越奇怪。 – quest

+0

對此有何更新?我也有這個問題創建一個我自己的獨立潘多拉應用程序。你確認這是一個潘多拉的具體問題? – ndmweb

+0

有沒有解決這個問題的方法? –

回答

1

您的應用程序在[NSHTTPCookieStorage sharedHTTPCookieStorage]容器中有自己的「cookie jar」。

這裏是你怎麼可能在你的應用程序的餅乾罐餅乾快速瀏覽一下:

NSHTTPCookie *cookie; 
NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
for (cookie in [cookieJar cookies]) { 
    NSLog(@"%@", cookie); 
} 

有幾種方法可用於過濾和處理。查看訪問cookie的NSHTTPCookieStorage文檔以及訪問單個cookie屬性的NSHTTPCookie文檔

可能這會幫助您解決問題。

+0

這絕對有用,但是我已經確定從瀏覽器發送相同的cookie,出於某種原因潘多拉在做一些奇怪的事情。如果我使用任何其他服務,登錄按預期工作。我甚至用wireshark嗅探了http對話,並且最初的請求發送的cookies完全匹配...... – quest

1

潘多拉盒型拼版軟件使用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?