私はフォーラムが初めてで、iOS Dev もまったく初めてです。UIWebView に問題があり、phpsession Cookie を設定する HTML フォームへのログイン許可を失い続けます (有効期限は 8 時間に設定され、デスクトップで動作します)。UIWebView は、8 時間ではなく約 1 時間後に Cookie を破棄するようです。アプリがバックグラウンド モードになった後や終了した後でも、NSHTTPCookieStorage が Cookie を自動的に処理する必要があることを読みました。
NSHTTPCookie は次のようになります
NSHTTPCookie バージョン:0 名前:"PHPSESSID" 値:"6f267fdc94c1ce5fcsdgg49b59a8f46b" expiresDate:2013-02-21 01:27:58 +0000 作成:2001-01-01 00:00:01 +0000 (1) sessionOnly:FALSE ドメイン: "mydomain.com" パス:"/" isSecure:FALSE
そして、ここで推奨されているように、終了/スリープ時に NSUserDefaults に保存し、フォアグラウンド/アプリを開くときに再度ロードします:既にログインしているユーザーでロードされた Web ビューを設定する方法 -iPhone - それでも、ログインを失い続けます。
誰かが私を方向に向けることができますか? どうもありがとう!
私は現在これを行っています(下の投稿によると):
NSURL *lastURL = [[self.webView request] mainDocumentURL];
if (lastURL.absoluteString == NULL) {
lastURL = [NSURL URLWithString:@"http://mydomain.com/"];
}
NSArray *cookiesForDomain = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:@"http://mydomain.com"]];
NSMutableURLRequest *newRequest = [NSMutableURLRequest requestWithURL:lastURL];
for (NSHTTPCookie *cookie in cookiesForDomain) {
NSString *cookieString = [NSString stringWithFormat:@"%@=%@", [cookie name], [cookie value]];
[newRequest setValue:cookieString forHTTPHeaderField:@"Cookie"];
NSLog(@"inserted cookie into request: %@", cookie);
}
[self.webView loadRequest:newRequest];