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

WKWebView WebSiteDataTypeDiskCache 삭제

by Mr-후 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:^{}];
}

 

 

반응형