본문 바로가기
프로그래밍/Xcode-iOS

WKWebView WebSiteDataTypeDiskCache 삭제

by averyone-known 2020. 7. 1.
반응형

웹서비스의 캐시 문제로 goBack()이 호출되면 스크립트가 실행되지 않는 문제가 발생. 

이에 웹뷰가 로드 되는 시점에 기존 캐시를 지우고 다시 로드 하는 방식으로 문제를 해결. 

코드는 다음과 같다. 

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
    NSURL *url = navigationAction.request.URL;
    [[NSURLCache sharedURLCache] removeAllCachedResponses];
    NSSet *webstieSet = [NSSet setWithArray:@[WKWebsiteDataTypeDiskCache,
                                              WKWebsiteDataTypeMemoryCache]];
    NSDate *date = [NSDate dateWithTimeIntervalSince1970:0];
    [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:webstieSet modifiedSince:date completionHandler:^{}];
}

 

 

반응형