WKWebView 共用Sessionid
你是否遇到这样的情况?之前用多个UIWebView加载同一类网址作跳转效果,但是升级成WkWebView后发现关联不到一起了,这是因为UIWebView的缓存数据是系统的,大家共用 但是WkWebView是独立的,所以你就无法关联了。怎么解决呢?就是让WKWebView 共用Sessionid
WKProcessPool这个属性就是WKWebView的数据池,让WKWebView共用就好了,需要把WKProcessPool定义成单例
这里写了一个WKProcessPool的分类
.h
#import <WebKit/WebKit.h>
@interface WKProcessPool (SharedProcessPool)
+ (WKProcessPool*)sharedProcessPool;
@end
.m
#import "WKProcessPool+SharedProcessPool.h"
@implementation WKProcessPool (SharedProcessPool)
+ (WKProcessPool*)sharedProcessPool {
static WKProcessPool* SharedProcessPool;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
SharedProcessPool = [[WKProcessPool alloc] init];
});
return SharedProcessPool;
}
@end
然后设置一下就好了
WKWebViewConfiguration* configuration = [[NSClassFromString(@"WKWebViewConfiguration") alloc] init];
configuration.processPool = [WKProcessPool sharedProcessPool];
WKWebView* webView = [[NSClassFromString(@"WKWebView") alloc] initWithFrame:self.bounds configuration:configuration];