//初始化添加了這個屬性後,web頁裏點擊後的請求都會有添加這個cookie,否則url請求以後便不帶cookie
WKUserContentController *userContentController = WKUserContentController.new;
NSString * cookieSource = [NSString stringWithFormat:@"document.cookie = 'JSESSIONID=%@'", _cookie];
WKUserScript *cookieScript = [[WKUserScript alloc] initWithSource:cookieSource injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO];
[userContentController addUserScript:cookieScript];WKWebViewConfiguration *config = [[WKWebViewConfiguration alloc] init];
config.userContentController = userContentController;
//初始化WKWebView
_webview = [[WKWebView alloc] initWithFrame:self.view.bounds configuration:config];
_webview.backgroundColor=[UIColor whiteColor];
[self.view addSubview:_webview];
_webview.UIDelegate = self;
_webview.navigationDelegate = self;
_webview.scrollView.bounces = NO;
//攔截-請求新的數據前執行
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
NSURL *URL = navigationAction.request.URL;
NSString *scheme = [NSString stringWithFormat:@"%@",URL];
//判斷請求的url是不是要攔截的url
if ([self webViewCancelRequestUrl:scheme]) {
//終止請求加載
decisionHandler(WKNavigationActionPolicyCancel);
[_delegate WebViewStatus:0 webUrl:scheme];
return;
}
decisionHandler(WKNavigationActionPolicyAllow);
}
//加載完後執行
- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
{
//修改字體大小 300%
[ webView evaluateJavaScript:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust='90%'" completionHandler:nil];
//修改字體顏色 #9098b8
[ webView evaluateJavaScript:@"document.getElementsByTagName('body')[0].style.webkitTextFillColor= '#000000'" completionHandler:nil];
[_delegate WebViewStatus:1 webUrl:[NSString stringWithFormat:@"%@",webView.URL]];
}
//是否攔截
-(BOOL)webViewCancelRequestUrl:(NSString *)url{
if ([url containsString:@"Hierarchy/Hierarchy"]) {
return YES;
}
if ([url containsString:@"President/President"]) {
return YES;
}
if ([url containsString:@"Administration/Administration"]) {
return YES;
}
if ([url containsString:@"Logistics/Logistics"]) {
return YES;
}
if ([url containsString:@"Personnel/Personnel"]) {
return YES;
}
if ([url containsString:@"Textcontrol/Textcontrol"]) {
return YES;
}
if ([url containsString:@"Train/Train"]) {
return YES;
}
if ([url containsString:@"Qualityobjectives/Qualityobjectives"]) {
return YES;
}
if ([url containsString:@"Market/Market"]) {
return YES;
}
return NO;
}