获取本地的cookie,[SystemConfigure shareSystemConfigure].get_kHttpURL]留意用自己本地的域名,获取本地的登录的cookie信息

- (NSString *)accessToken {

NSString *token = @"";

NSHTTPCookieStorage* cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];

NSArray *cookies = [cookieStorage cookiesForURL:[NSURL URLWithString:[SystemConfigure shareSystemConfigure].get_kHttpURL]];

for (NSHTTPCookie *cookie in cookies) {

if ([cookie.name isEqualToString:@"accessToken"]) {

token = [NSString stringWithFormat:@"%@",cookie.value];

[[TMCache sharedCache] setObject:token forKey:kLoginTokenKey];

break;

}

}

return token;

}

设置cookie到web,注意self.startPage为你h5的链接地址,[PCUserLevelService share].accessToken为你之前保存的token

//解决cookie保存问题 h5添加cookie中accessToken

NSHTTPCookieStorage* cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];

NSArray *cookies = [cookieStorage cookiesForURL:[NSURL URLWithString:self.startPage]];

[cookies enumerateObjectsUsingBlock:^(NSHTTPCookie * _Nonnull cookie, NSUInteger idx, BOOL * _Nonnull stop) {

NSMutableDictionary *properties = [[cookie properties] mutableCopy];

[properties setValue: [PCUserLevelService share].accessToken forKey:NSHTTPCookieValue];

[properties setValue:@"accessToken" forKey:NSHTTPCookieName];

//将cookie过期时间设置为一年后

NSDate *expiresDate = [NSDate dateWithTimeIntervalSinceNow:3600*24*30*12];

properties[NSHTTPCookieExpires] = expiresDate;

//下面一行是关键,删除Cookies的discard字段,应用退出,会话结束的时候继续保留Cookies

[properties removeObjectForKey:NSHTTPCookieDiscard];

//重新设置改动后的Cookies

[cookieStorage setCookie:[NSHTTPCookie cookieWithProperties:properties]];

}];

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐