zoukankan      html  css  js  c++  java
  • WKWebView与UIWebView 的重定向区别

    1.在WKWebView重定向处理:

    在decidePolicyForNavigationAction 代理方法中添加

       NSURL *url = [NSURL URLWithString:string];
        NSMutableURLRequest *quest = [NSMutableURLRequest requestWithURL:url];
        quest.HTTPMethod = @"GET";
        NSURLConnection *connect = [NSURLConnection connectionWithRequest:quest delegate:self];
        [connect start];

    并在NSURLConnectionDataDelegate的代理方法

    - (nullable NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(nullable NSURLResponse *)response
    {
        NSHTTPURLResponse *urlResponse = (NSHTTPURLResponse *)response;
        
        NSLog(@"statusCode: %ld", urlResponse.statusCode);
        
        NSDictionary *headers = urlResponse.allHeaderFields;
        NSLog(@"%@", headers);
        NSLog(@"redirect   url: %@", headers[@"Location"]);    // 重定向的地址
        NSLog(@"newRequest url: %@", [request URL]);           // 重定向的地址或原地址
        NSLog(@"redirect response url: %@", [urlResponse URL]);// 触发重定向请求的地址,
        if ([request URL] != nil && headers[@"Location"] != nil)
        {
            NSLog(@"重定向处理");
            [self.wkWebView loadRequest:[NSURLRequest requestWithURL:[request URL]]];
            self.shareUrl = [request URL].absoluteString;
        }
        else
        {
            NSLog(@"无重定向处理");
        }
        return request;
    }

    2.UIWebView 重定向处理

    在 shouldStartLoadWithRequest中加入

     [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
                if (connectionError || ([response respondsToSelector:@selector(statusCode)] && [((NSHTTPURLResponse *)response) statusCode] != 200 && [((NSHTTPURLResponse *)response) statusCode] != 302)) {
                    
                        NSLog(@"xy-statusCode = %zd", [(NSHTTPURLResponse *)response statusCode]);
        
                }else {// 重定向的URL
                    NSString *url =response.URL.absoluteString;
    //                [webView loadRequest:[NSURLRequest requestWithURL:kURLString(response.URL.absoluteString)]];
                    NSLog(@"xy-重定向statusCode = %zd", [(NSHTTPURLResponse *)response statusCode]);
                    self.shareUrl =url;
                }
                NSLog(@"xy---------------------------------------------------------");
            }];

  • 相关阅读:
    html5中让页面缩放的4种方法
    Beautiful Soup教程 转
    python 第三方模块 转 https://github.com/masterpy/zwpy_lst
    Windows安装Python图像处理库:PIL模块
    python常见的模块
    BeautifulSoup 常用方法
    服务器用户连接数设置
    如何查看IIS并发连接数【转】
    .net 时间戳和日期互转 【转】http://www.cnblogs.com/zhuiyi/p/5307540.html
    Python3学习笔记(urllib模块的使用)转http://www.cnblogs.com/Lands-ljk/p/5447127.html
  • 原文地址:https://www.cnblogs.com/pp-pping/p/11412985.html
Copyright © 2011-2022 走看看