iOS 中UIWebView的cookie

有关cookie是什么,大家可以自行百度,本文我获得cookie的目的是得到一个userID。

下面的是代码。

- (void)getUserIDFromCookie
{
    NSHTTPCookieStorage *sharedHTTPCookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    NSArray *cookies = [sharedHTTPCookieStorage cookiesForURL:urlStr];

    NSEnumerator *enumerator = [cookies objectEnumerator];
    NSHTTPCookie *cookie;
    while (cookie = [enumerator nextObject]) {
        NSLog(@"%@,%@", [cookie name], [cookie value]);
    }
}

由此得到的cookie,大家可以根据cookie里面的内容进行遍历,来得到自己想要的值。

对于ios 来说 NSHTTPCookieStorage 会存储APP自身访问所有url的cookie,可以用domain为标志来获取自己所需要的cookie。需要注意的是,NSHTTPCookieStorage存储的cookie在过期后会自动删除,如用户手动调整时间超过期时间则系统也会自动删除,因此某些业务逻辑需要注意。

设置cookie:

- (void)setCookie{
    NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
//    设置 cookie 的参数
    [cookieProperties setObject:@"cookie_user" forKey:NSHTTPCookieName];
    [cookieProperties setObject:uid forKey:NSHTTPCookieValue];
    [cookieProperties setObject:@"xxx.xxx.com" forKey:NSHTTPCookieDomain];
    [cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
    [cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];
    [cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];

    NSHTTPCookie *cookieuser = [NSHTTPCookie cookieProperties];
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookieuser];
}

接下来说下清除所有cookie:

NSHTTPCookie *cookie;
NSHTTPCookieStorage *sharedHTTPCookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (cookie in [storage cookies]) {    [sharedHTTPCookieStorage deleteCookie:cookie]; } // 缓存 清除 [[NSURLCache sharedURLCache] removeAllCachedResponses];

清除某个url下的cookie:

- (void)deleteCookie{
    NSHTTPCookie *cookie;

    NSHTTPCookieStorage *sharedHTTPCookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];

    NSArray *cookieAry = [sharedHTTPCookieStorage cookiesForURL: [NSURL URLWithString:urlStr]];   for (cookie in cookieAry)   {     [sharedHTTPCookieStorage deleteCookie: cookie];   } }

参考文章:在UIWebView中设置cookie

时间: 2024-10-28 15:47:04

iOS 中UIWebView的cookie的相关文章

iOS中UIWebView的使用详解

iOS中UIWebView的使用详解 一.初始化与三种加载方式 UIWebView继承与UIView,因此,其初始化方法和一般的view一样,通过alloc和init进行初始化,其加载数据的方式有三种: 第一种: - (void)loadRequest:(NSURLRequest *)request; 这是加载网页最常用的一种方式,通过一个网页URL来进行加载,这个URL可以是远程的也可以是本地的,例如我加载百度的主页:     UIWebView * view = [[UIWebView al

iOS中UIWebView执行JS代码(UIWebView)

iOS中UIWebView执行JS代码(UIWebView) 有时候iOS开发过程中使用 UIWebView 经常需要加载网页,但是网页中有很多明显的标记让人一眼就能看出来是加载的网页,而我们又不想被人卡出来. 如网页中的这个导航 通常我们不需要WebView中的 导航栏,也不需要里面的返回上一级的交互.. 对WebView常用的另外一种功能就是对某个点击添加对用function实现JS调用OC的交互功能. 下面一一介绍: 1. UIWebView 调用JS代码 OC调用JS通常是,在webVi

IOS中UIWebView和JavaScript交互(转自http://blog.2jun.net/2012/11/02/webviewandjs/)

IOS中UIWebView和JavaScript交互 当程序中使用到UIWebView控件的时候,难免会遇到需要与页面进行交互的情况.这种情况在android平台下比较容易处理,android平台下WebView控件的addJavascriptInterface()方法可以很轻松的完成交互,而IOS上就稍复杂一些. 页面与客户端的交互是通过JS来完成的,通常情况下与JS的交互可以分为两种:客户端传递给JS一些数据和JS向客户端请求一些本地操作.下面分别对这两种情况进行处理. JS向客户端请求本地

IOS中UIWebView的UXSS漏洞及修复方法

做IOS开发的同学经常用到UIWebView,大多时候是加载外部地址,但是有一些时候也会用来加载本地的html文件. UIWebView加载外部地址的时候遵循了"同源"策略,而加载本地网页的时候却绕够了"同源"策略,导致可以访问系统任意路径. 这就是UIWebView中存在的UXSS漏洞.已知尚未修复该漏洞的App有:微盘.文件全能王.QQ阅读. 漏洞复现方式大体相似,现在微盘为例: 在PC上编辑一个网页,命名为test.html. 内容如下: <script

iOS中UIWebView使用JS交互

iOS中偶尔也会用到webview来显示一些内容,比如新闻,或者一段介绍.但是用的不多,现在来教大家怎么使用js跟webview进行交互. 这里就拿点击图片获取图片路径为例: 1.测试页面html <!doctype html> <html> <head> </head> <body> <div> <img src="test.png"/> </div> </body> <

iOS中UIWebView使用JS交互 - 机智的新手

iOS中偶尔也会用到webview来显示一些内容,比如新闻,或者一段介绍.但是用的不多,现在来教大家怎么使用js跟webview进行交互. 这里就拿点击图片获取图片路径为例: 1.测试页面html <!doctype html> <html> <head> </head> <body> <div> <img src="test.png"/> </div> </body> <

iOS中UIWebView的介绍及用法

建立网络连接步骤 确定URL:明确要访问的网络资源 建立网络请求(URLRequest) 讲请求发送(NSURLConnection.NSURLSession)给服务器 处理服务器返回的数据(代理.block回调) UIWebView UIWebView是iOS内置的浏览器控件,可以浏览网页.打开文档等. 能够加载html.htm.pdf.docx.txt等格式的文件. 系统自带的safari浏览器就是通过UIWebView实现的. 在iOS7之前,UILabel.UITextField.以及U

iOS中UIWebView的一个需求:获得js图片请求完成的回调时机

不久之前,项目中用到了UIWebView加载js的功能,之前使用webView都是简单使用,没考虑很多与js交互的地方,虽然现在项目完成了,但是回头看看这方面的知识还是有些茫然,在此记录一点,然后后续如果有用更多的话再来进行补充. 需求 封装个view,提供给开发者使用,暴露两个方法以供调用: 1.是调用initWithXXX进行初始化位置等等参数配置: 2.调用loadH5PageWithSuccessBlock:failureBlock:让view中的webView加载H5页面显示出来即可.

关于IOS中UIWebView 加载HTML内容

NSString *strContent=[info objectForKey:@"newContent"]; { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDir = [paths objectAtIndex:0] ;   //根据自己的具体情况设置,我的html文件在document目录,链接