iOS UIWebView 通过 cookie 完成自动登录
2017-04-20 18:00
344 查看
1、相关介绍
iOS在UIWebView中获取的cookie的方法:NSHTTPCookieStorage
* nCookies = [NSHTTPCookieStorage
sharedHTTPCookieStorage];
再具体获取某个域的cookie:NSArray*
cookiesURL = [nCookies cookiesForURL:[NSURL
URLWithString:@"你的URL"]];
通过[[NSHTTPCookieStorage
sharedHTTPCookieStorage]
setCookie:userCookie]方法将 cookies来保存起来,但是这样虽然可以保存cookies但是你应用退出之后还是会丢失(其实是cookies过期的问题),做好的方法是把cookies放到NSUserDefaults保存起来.
2、实现
1.在UIWebView的代理方法中实现获取cookies并将cookies放到NSUserDefaults保存起来:-
(void)webViewDidFinishLoad:(UIWebView*)webView中写入
- (void)webViewDidFinishLoad:(UIWebView*)webView{
NSArray *nCookies = [[NSHTTPCookieStoragesharedHTTPCookieStorage]
cookies];
for (NSHTTPCookie *cookie
in nCookies){
if ([cookie isKindOfClass:[NSHTTPCookie
class]]){
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:@"cookies"];
break;
}
}
}
}
2.获取cookies:运行之后,UIWebView加载url之前获取保存好的cookies,并设置cookies,
NSArray *cookies =[[NSUserDefaults
standardUserDefaults]
objectForKey:@"cookies"];
if (cookies.count >0) {
NSMutableDictionary *cookieProperties = [NSMutableDictionarydictionary];
[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 = [NSHTTPCookiecookieWithProperties:cookieProperties];
[[NSHTTPCookieStorage
sharedHTTPCookieStorage]
setCookie:cookieuser];
}
注意:要在[self.webView loadRequest:req];之前设置获取cookies!
iOS在UIWebView中获取的cookie的方法:NSHTTPCookieStorage
* nCookies = [NSHTTPCookieStorage
sharedHTTPCookieStorage];
再具体获取某个域的cookie:NSArray*
cookiesURL = [nCookies cookiesForURL:[NSURL
URLWithString:@"你的URL"]];
通过[[NSHTTPCookieStorage
sharedHTTPCookieStorage]
setCookie:userCookie]方法将 cookies来保存起来,但是这样虽然可以保存cookies但是你应用退出之后还是会丢失(其实是cookies过期的问题),做好的方法是把cookies放到NSUserDefaults保存起来.
2、实现
1.在UIWebView的代理方法中实现获取cookies并将cookies放到NSUserDefaults保存起来:-
(void)webViewDidFinishLoad:(UIWebView*)webView中写入
- (void)webViewDidFinishLoad:(UIWebView*)webView{
NSArray *nCookies = [[NSHTTPCookieStoragesharedHTTPCookieStorage]
cookies];
for (NSHTTPCookie *cookie
in nCookies){
if ([cookie isKindOfClass:[NSHTTPCookie
class]]){
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:@"cookies"];
break;
}
}
}
}
2.获取cookies:运行之后,UIWebView加载url之前获取保存好的cookies,并设置cookies,
NSArray *cookies =[[NSUserDefaults
standardUserDefaults]
objectForKey:@"cookies"];
if (cookies.count >0) {
NSMutableDictionary *cookieProperties = [NSMutableDictionarydictionary];
[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 = [NSHTTPCookiecookieWithProperties:cookieProperties];
[[NSHTTPCookieStorage
sharedHTTPCookieStorage]
setCookie:cookieuser];
}
注意:要在[self.webView loadRequest:req];之前设置获取cookies!
相关文章推荐
- iOS UIWebView 通过 cookie 完成自动登录验证
- iOS UIWebView 通过 cookie 完成自动登录验证
- iOS UIWebView 通过 cookie 完成自动登录验证
- iOS UIWebView 通过 cookie 完成自动登录验证
- iOS UIWebView 通过 cookie 完成自动登录验证
- iOS UIWebView 通过 cookie 完成自动登录验证
- iOS UIWebView 通过 cookie 完成自动登录验证
- iOS UIWebView 通过 cookie 完成自动登录验证
- iOS UIWebView 通过 cookie 完成自动登录实例
- iOS UIWebView 通过 cookie 完成自动登录验证
- uiwebview通过cookie自动登录
- JAVA通过Session和Cookie实现网站自动登录的技术
- jsp通过Cookie实现自动登录
- jsp通过Cookie实现自动登录
- 解决通过Cookie进行网站自动登录的安全性问题
- jsp通过Cookie实现自动登录
- JSP通过Cookie实现自动登录
- 通过COOKIE实现自动登录
- 关于通过Cookie进行网站自动登录的安全问题
- 通过SSH的过滤器及Cookie实现自动登录2周不退出