GGWkCookie
示例
要运行示例项目,请克隆仓库,然后首先从 Examples 目录运行 pod install
。
需求
WKWebView管理cookie很麻烦,经常出现 App自定义cookie值丢失或更新不及时的情况。通过长期踩坑,总结出WKWebview管理cookie的一种方案。
原理:WKWebview支持的插入脚本的方式,在每次页面渲染前,通过插入的Js脚本检测Cookie是否存在,如不存在,将cookie重新种入的思路。
注意:因为考虑避免子域名和根域名cookie重复出现,该方法所有的Cookie值将种在根域名上。
安装
GGWkCookie可通过CocoaPods获取。安装时,只需将以下行添加到 Podfile 中
pod 'GGWkCookie'
使用
1.导入头文件:
#import "GGWkCookie.h"
或
#import <GGWkCookie/GGWkCookie.h>
2.实现 <GGWkWebViewDelegate>
协议,开启cookie开关 startCustomCookie()
// 设置cookie代理
webView.cookieDelegate = self;
// 开启自定义cookie(在loadRequest前开启)
[webView startCustomCookie];
/// 代理方法中设置 app自定义的cookie
- (NSDictionary *)webviewSetAppCookieKeyAndValue {
return @{
@"cookieName":@"value",
};
}
3.如果代理中的cookie发生改变,调用 reloadCookie()
更新cookie,- (NSDictionary *)webviewSetAppCookieKeyAndValue
代理方法将获取最新的cookie值。
总结: 因此,我们只需要确保代理方法- (NSDictionary *)webviewSetAppCookieKeyAndValue
的返回值维护良好,在需要更新的情况下调用reloadCookie()
方法即可。
博客地址:https://www.jianshu.com/p/43a1e87a91d5
作者
gaoguohao, [email protected]
许可协议
GGWkCookie遵循MIT许可协议。有关更多信息,请参阅LICENSE文件。