// // ASWebViewController.m // Asteria // // Created by iOS on 2023/6/24. // #import "ASWebViewController.h" @interface ASWebViewController () @property (nonatomic, strong) WKWebView *webView; @end @implementation ASWebViewController - (void)viewDidLoad { [super viewDidLoad]; [self loadSubVs]; [self configViews]; [self beginLoad]; } - (void)dealloc { [self deleteWebCache]; } - (void)deleteWebCache { //allWebsiteDataTypes清除所有缓存 NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes]; NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0]; [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{ }]; } - (void)beginLoad { NSMutableString *endUrl = [NSMutableString stringWithString:self.webUrl]; if ([self.webUrl hasSuffix:@"/"]) { [endUrl deleteCharactersInRange:NSMakeRange(endUrl.length-1, 1)]; } NSURL *url = [NSURL URLWithString:endUrl]; NSURLComponents *components = [NSURLComponents componentsWithURL:url resolvingAgainstBaseURL:NO]; NSMutableArray *array = [NSMutableArray arrayWithArray:components.queryItems]; NSURLQueryItem *item = [NSURLQueryItem queryItemWithName:@"hidenav" value:@"1"]; [array addObject:item]; components.queryItems = array; [components setQueryItems:array]; url = [components URLRelativeToURL:url]; if (!url) { return; } NSURLRequest *requst = [NSURLRequest requestWithURL:url]; [self.webView loadRequest:requst]; } - (void)configViews { [self setTitleStr:self.customTitle]; [self setNavRightSearch:^{ }]; } - (void)loadSubVs { [self.view addSubview:self.webView ]; [self.webView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(self.customNavBar.mas_bottom); make.bottom.leading.trailing.equalTo(self.view); }]; } // MARK: - subvs - (WKWebView *)webView { if (!_webView) { WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init]; WKWebView *v = [[WKWebView alloc] initWithFrame:CGRectZero configuration:config]; v.navigationDelegate = self; v.UIDelegate = self; _webView = v; } return _webView; } // MARK: - uidelegate navidelegate - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation { [webView evaluateJavaScript:@"document.title" completionHandler:^(id _Nullable title, NSError * _Nullable error) { NSString *titleStr = [NSString stringWithFormat:@"%@",title]; if (!titleStr.isEmpty) { [self setTitleStr:titleStr]; } }]; } @end