iOS UIWebView 通過 cookie 完成自動登錄

首先在- (void)webViewDidFinishLoad:(UIWebView *)webView方法中獲取cookie并保存:

- (void)webViewDidFinishLoad:(UIWebView *)webView{

//保存cookie

// 將獲取的cookie儲存在沙盒中( 通過 [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie: cookies]來保存cookies,但是我發(fā)現(xiàn),即使這樣設(shè)置之后再app退出之后,該cookies還是丟失了(其實是cookies過期的問題)

NSArray *nCookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];

NSHTTPCookie *cookie;

for (id c in nCookies)

{

if ([c isKindOfClass:[NSHTTPCookie class]])

{

cookie=(NSHTTPCookie *)c;

if ([cookie.name isEqualToString:@"PHPSESSID"]) {

NSNumber *sessionOnly = [NSNumber numberWithBool:cookie.sessionOnly];

NSNumber *isSecure = [NSNumber numberWithBool:cookie.isSecure];

NSArray *cookies = [NSArray arrayWithObjects:cookie.name, cookie.value, sessionOnly, cookie.domain, cookie.path, isSecure, nil];

[[NSUserDefaults standardUserDefaults] setObject:cookies forKey:@"cookie"];

break;

}

}

}

}


之后在loadRequest請求之前設(shè)置cookie,就會自動登錄了:

- (void)createWkWebView{

_webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 64, SCREEN_WIDTH, SCREEN_HEIGHT-64-49)];

_webView.backgroundColor = [UIColor whiteColor];

[self.view addSubview:_webView];

self.webView = _webView;

_webView.delegate = self;

//獲取cookie

if ([[[[NSUserDefaults standardUserDefaults]dictionaryRepresentation]allKeys]containsObject:@"cookie"]) {

//獲取cookies:程序起來之后,uiwebview加載url之前獲取保存好的cookies,并設(shè)置cookies,

NSArray *cookies =[[NSUserDefaults standardUserDefaults]? objectForKey:@"cookie"];

NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];

[cookieProperties setObject:[cookies objectAtIndex:0] forKey:NSHTTPCookieName];

[cookieProperties setObject:[cookies objectAtIndex:1] forKey:NSHTTPCookieValue];

[cookieProperties setObject:[cookies objectAtIndex:3] forKey:NSHTTPCookieDomain];

[cookieProperties setObject:[cookies objectAtIndex:4] forKey:NSHTTPCookiePath];

NSHTTPCookie *cookieuser = [NSHTTPCookie cookieWithProperties:cookieProperties];

[[NSHTTPCookieStorage sharedHTTPCookieStorage]? setCookie:cookieuser];

}

[_webView loadRequest:.........];

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容