ios js h5 交互 cookie设置 自动登录
2016-10-10 10:43
716 查看
保证可行!两步实现iOS UIWebView 通过 cookie 完成自动登录。
字数486阅读967 评论3 喜欢35
这两天有个项目需求,在网上找了好多博文都不可以拿来就能实现(对于伸手党怎么能行),为了避免浪费大家的时间我在这里给出一份一定可行的方法:
1、相关知识点介绍
iOS在UIWebView中获取的cookie的方法:
NSHTTPCookieStorage * nCookies = [NSHTTPCookieStorage sharedHTTPCookieStorage]
再具体获取某个域的饼干:
NSArray* cookiesURL = [nCookies cookiesForURL:[NSURL URLWithString:@“你的URL”]];
通过
[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie]方法将
cookies来保存起来,但是这样虽然可以保存
cookies但是你应用退出之后还是会丢失(其实是cookies过期的问题),做好的方法是把
cookies放到
NSUserDefaults保存起来:
2、实现方法
简单粗暴直接上码:demo1.在UIWebView的代理方法中实现获取
cookies并将
cookies放到NSUserDefaults保存起来:
(void)webViewDidFinishLoad:(UIWebView *)webView中写入
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:@"cookies"]; break; } } }
2.获取
cookies:运行之后,
UIWebview加载url之前获取保存好的
cookies,并设置
cookies,
NSArray *cookies =[[NSUserDefaults standardUserDefaults] objectForKey:@"cookies"]; 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];
注意:要在[self.webView loadRequest:req];之前设置获取cookies!
到现在为止你的应用肯定就已经实现了你想要的功能!
吃水不忘挖井人:(其中连接上面实现的稍微有些问题,我在我这里已经进行了修改)功能实现参考链接
----By ZPengs
相关文章推荐
- iOS UIWebView 通过 cookie 完成自动登录验证
- js与oc交互以及cookie设置 UIWebView与WKWebview兼容
- Java设置session超时(失效)的时间 在一般系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session 具体设置的方法有三种:
- iOS UIWebView 通过 cookie 完成自动登录实例
- iOS UIWebView 通过 cookie 完成自动登录验证
- js与oc交互以及cookie设置 UIWebView与WKWebview兼容
- js点击checkbox存入cookie自动登录(个人菜鸟笔记)
- iOS webview与Js的交互。以及修改cookie、header头
- iOS平台下cookie实现自动登录
- 微信Android自动播放视频(可交互,设置层级,无控制条,非X5)ffmpeg,jsmpeg.js,.ts视频
- iOS UIWebView 通过 cookie 完成自动登录验证
- iOS UIWebView 通过 cookie 完成自动登录验证
- iOS UIWebView 通过 cookie 完成自动登录验证
- jquery设置cookie自动登录
- C# 设置IE Cookie 从而实现自动打开需要登录的页面
- iOS webview与JS的交互;以及修改cookie、header头
- js自动登录cookie
- iOS UIWebView 通过 cookie 完成自动登录
- iOS UIWebView 通过 cookie 完成自动登录验证
- iOS UIWebView 通过 cookie 完成自动登录验证