iOS JS交互之cookie设置与清空 项目开发中,由于JS交互这块,Android先行。所以这块机制也都是按照Android的实现去弄的。之前也有做过JS交互这一块,但是用的是url捕捉的形式,参数传递也都是通过接口连接拼接的形式。 今天简单记录下iOS JS交互中的cookie的用法。cookie主要就是相当于接口拼接的传递参数的功能。(后续会更新iOS JS交互之仿Android addJavaScriptInterface原理,实现JS交互效果的相关文章,敬请期待) 一、cookie调用 //设置cookie(调用)
//参数说明: url是NSString类型 [self setCookie:url AndKey:@"isApp" AndValue:@"true"];二、设置cookie的方法
#pragma mark - #pragma mark 设置cookie - (void)setCookie:(NSString *)url AndKey:(NSString *)key AndValue:(NSString *)value { if (url) { NSString * cookieUrl = @""; //kBaseURL kBaseH5URL 图片地址:FirstURL if ([url containsString:kBaseH5URL]) { cookieUrl = kBaseH5URL; }else if ([url containsString:FirstURL]) {//图片地址 cookieUrl = FirstURL; } NSURL * tempUrl = [NSURL URLWithString:url]; //设置cookie 注意,所有值都是NSString类型的 NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary]; [cookieProperties setObject:key forKey:NSHTTPCookieName];//名称 [cookieProperties setObject:value forKey:NSHTTPCookieValue];//值 [cookieProperties setObject:[tempUrl host] forKey:NSHTTPCookieDomain];//域 // [cookieProperties setObject:url forKey:NSHTTPCookieOriginURL]; // [cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];//路径 [cookieProperties setObject:[tempUrl path] forKey:NSHTTPCookiePath];//路径 [cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];//cookie版本0 // [cookieProperties setObject:@"30000" forKey:NSHTTPCookieMaximumAge];//有效期 NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties]; [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; NSLog(@"设置cookie key=%@,value=%@",key,value); } else { return; } }(PS:设置cookie参考了博文链接)
三、清空cookie的方法 #pragma mark - #pragma mark 删除cookie - (void)deleteCookie { NSLog(@"============删除cookie==============="); NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; //删除cookie for (NSHTTPCookie *tempCookie in cookies) { [cookieStorage deleteCookie:tempCookie]; } //把cookie打印出来,检测是否已经删除 NSArray *cookiesAfterDelete = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]; for (NSHTTPCookie *tempCookie in cookiesAfterDelete) { NSLog(@"cookieAfterDelete: %@", tempCookie); } NSLog(@"\n"); }删除cookie参考了博文链接