美文网首页
iOS的WKWebView的cookie相关总结

iOS的WKWebView的cookie相关总结

作者: 凶猛老鹰 | 来源:发表于2023-06-24 10:49 被阅读0次

1.需求:WKWebView在访问某一个url时,url内部需要从cookie读取某一个值
2.代码:

- (void)createUI {
    
    WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
    self.webV  = [[WKWebView alloc] initWithFrame:CGRectZero configuration:configuration];
    [self.view addSubview:self.webV];
    [self.webV mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.right.top.bottom.equalTo(self.view);
    }];
    
    //创建NSHTTPCookie实例
    NSDictionary *properties = @{
                                 NSHTTPCookieName : @"name",
                                 NSHTTPCookieValue : @"zhangsan",
                                 NSHTTPCookieDomain : @"域名",
                                 NSHTTPCookiePath : @"/",
                                 NSHTTPCookieSecure : @(YES)
                                 };
    NSHTTPCookie *myCookie = [NSHTTPCookie cookieWithProperties:properties];
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie: myCookie];
    [self configureData];
}
- (void)configureData {
    
    NSURL *url = [NSURL URLWithString:@"H5地址"];
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
    [self.webV loadRequest:request];
    
}

3.说明
NSHTTPCookieName:表示Cookie的名称,通常用于标识客户端请求中的Cookie,也用于后续客户端和服务器交互时访问该Cookie。
NSHTTPCookieValue:表示Cookie的值,通常是服务器分配给客户端的唯一标识符,用于标识客户端的身份。
NSHTTPCookieDomain:表示Cookie的域名,可以设置为服务器的主机名或域名,也可以为其子域名。当客户端请求该域名或其子域名的网页时,Cookie便会随请求一起发送给服务器。
NSHTTPCookiePath:表示Cookie所属的路径,通常设置为服务器处理请求的路径。例如,如果某个服务器处理来自“/login”路径的请求,可以将Cookie的路径设置为“/login”,以便在后续处理该路径的请求时发送Cookie。
NSHTTPCookieSecure:表示Cookie是否采用加密传输,如果值为@(YES),则表示采用安全连接(HTTPS)传输;如果值为@(NO),则表示采用普通连接(HTTP)传输。
其中Name、Value、Domain和Path是必需的,而Secure是可选的。通过设置这些属性,在向服务器发送请求时,可以将Cookie附加在请求中发送给服务器,以便服务器识别客户端身份。
4.关于存储cookie方法的介绍
当您使用[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie: myCookie]方法将一个NSHTTPCookie对象添加到HTTP Cookie存储中时,该Cookie的值会被存储在设备上并发送给Web服务器,该服务器可以读取该Cookie并在必要时使用它。这是一个用于在iOS和macOS应用程序中管理Web浏览会话的核心方法,如果您的应用程序需要记录会话信息(例如登录信息),就可以使用它来存储和获取Cookie信息。

例如,当您登录到一个需要登录信息才能访问的网站时,该网站会将一个包含登录信息的cookie发送给您的设备,以便在您下一次访问该网站时自动登录,而不需要再次输入用户名和密码。如果您使用上面的setCookie:方法将该Cookie存储到HTTP Cookie存储中,则该Cookie将被保存在设备中,并在您下一次登录时自动发送给该Web站点,从而自动登录您的帐户。

此外,可以使用同样的方式从HTTP Cookie存储中删除Cookie 信息,只需使用[[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie: cookie]方法从HTTP Cookie存储中删除相应的Cookie对象即可。需要注意的是,在使用此方法从HTTP Cookie存储中删除Cookie对象时,删除的是存储在设备上的客户端Cookie,而不是服务器上的Cookie。服务器Cookie只能在服务器端进行管理。

总之,使用[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie: myCookie]方法将Cookie存储到HTTP Cookie存储中,可以实现方便的Web会话管理,包括登录和帐户信息,同时可以使用[[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie: cookie]方法从HTTP Cookie存储中删除Cookie。

相关文章

网友评论

      本文标题:iOS的WKWebView的cookie相关总结

      本文链接:https://www.haomeiwen.com/subject/sjhbydtx.html