存储会话以在webview IOS上使用它



大家好。我目前面临的一个问题是,在年,我不知道如何存储web API将给我的会话,并使用它来获取数据并将其放在webview 上

以下是迄今为止我得到的

let URL_USER_LOGIN = "https://xxxx.xxx.xxx/xxx/xxx"
let parameters: Parameters=[
"username" : usernameTextField.text!,
"password" : passwordTextField.text!
]
Alamofire.request(URL_USER_LOGIN, method: .post, parameters: parameters).responseString
{
response in
//WEBVIEW
//if success
let url = NSURL(string:"https://xxx.xxx.xxx/xxx/dashboard")
let requestObj = URLRequest(url: url! as URL) self.WebView_Dashboard.LoadRequest(requesObj)
}

我使用Alamofire框架进行请求后

正如我所理解的。来自我的一个旧项目:(对不起目标C。很容易转换为Swift(

-(void)saveCookies:(NSString*)user_id{
NSMutableArray *theCookies = [NSMutableArray new];
for(NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) {
[theCookies addObject:cookie];
}
if (theCookies.count>0){
NSData *cd = [NSKeyedArchiver archivedDataWithRootObject:theCookies];
NSString *cookiesFilesPath = [appDelegate cookPathForUser:user_id]; // Here your path to file (or you can store it anywhere)
[[NSFileManager defaultManager] createFileAtPath:cookiesFilesPath contents:[NSData data] attributes:nil];
[cd writeToFile:cookiesFilesPath atomically:YES];
}    
}
-(NSArray*)cookiesForUser:(NSString*)user_id{
NSData *cookiesData = [NSData dataWithContentsOfFile:[appDelegate cookPathForUser:user_id]];
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesData];
return cookies;
}
-(void)resetCookies {
[[NSURLCache sharedURLCache] removeAllCachedResponses];
for(NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}
} 
- (void)applyCookies:(NSArray*)cookies {
for (int i = 0; i<cookies.count; i++){
NSHTTPCookie *cookie = [cookies objectAtIndex:i];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
}
} 
- (void)addCookies:(NSArray *)cookies forRequest:(NSMutableURLRequest *)request
{
if ([cookies count] > 0)
{
NSHTTPCookie *cookie;
NSString *cookieHeader = nil;
for (cookie in cookies)
{
if (!cookieHeader)
{
cookieHeader = [NSString stringWithFormat: @"%@=%@",[cookie name],[cookie value]];
}
else
{
cookieHeader = [NSString stringWithFormat: @"%@; %@=%@",cookieHeader,[cookie name],[cookie value]];
}
}
if (cookieHeader)
{
[request setValue:cookieHeader forHTTPHeaderField:@"Cookie"];
}
}
}

最新更新