4

私はフォーラムが初めてで、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];
4

1 に答える 1