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];


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM