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参考了博文链接