2011-11-23 4 views
5

現在のPandoraMan(http://github.com/zquestz/PandoraMan)のビルドにいくつかの問題があります。すべてが機能的ですが、ウィンドウの位置は保存されていますが、すべての重要な機能は動作しますが、1つのバグがあります。Cookie/State of Cocoa WebViewが保存されない

私がPandoraにログインすると、決して保存されません。私はそれがシステムのクッキーを読んで、Safariと状態を共有していると仮定していました。古いバージョン(10.4の古代xcodeを使用)はうまくいきました。

アプリを起動してPandoraManを使用してログインするとログインし、サイトは正常に機能します。しかし、私はいつも再びログインする必要がある私は、アプリケーションを再起動します。これは決して起こることはありませんでした。この問題に関しては、ドキュメントでは何も見つかりません。

誰かがこの問題に関するいくつかの洞察力を持っているなら、それは素晴らしいでしょう。コードはオープンソースなので、コメント内でコードをバウンスすることなく問題をチェックアウトすることができます。

+0

私は、いくつかの他のサイトを試してみましたパンドラ以外のすべてのために私は私を維持することができていますログイン...これはますます奇妙になります。 – quest

+0

このアップデートはありますか?私はまた、この問題を自分自身のスタンドアロンのpandoraアプリを作成しています。これがPandora特有の問題であることを確認しましたか? – ndmweb

+0

これには解決策がありましたか? –

答えて

1

あなたのアプリケーションは[NSHTTPCookieStorage sharedHTTPCookieStorage]コンテナに独自の「cookie jar」を持っています。

は、ここでは、あなたのアプリケーションのクッキージャーにクッキーをざっと見てかかることがあります方法は次のとおりです。

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

いくつかの方法が、フィルタリングと操作のために用意されています。クッキーにアクセスするためのNSHTTPCookieStorageのドキュメントと個々のクッキープロパティにアクセスするためののドキュメントをご覧ください。

これはあなたの問題を助けることがあります。

+0

これは間違いなく便利ですが、ブラウザから同じクッキーが送信されていると私はすでに判断しています。何らかの理由でPandoraが何か変なことをしています。他のサービスを使用している場合、ログインは正常に機能します。私はwiresharkでhttpの会話を盗聴し、最初のリクエストで送信されたクッキーは完全に一致します... – quest

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?

関連する問題