關於WKWebView添加Cookie的處理以及攔截和重定向

       

//初始化添加了這個屬性後,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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章