iOS开发之WKWebView怎么加载请求并且传参数

来源:互联网 发布:真人快打x没有网络链接 编辑:程序博客网 时间:2024/06/08 18:50

WKWebView是苹果在iOS 8中引入的新组件,目的是给出一个新的高性能的WebView解决方案,摆脱过去 UIWebView的老、旧、笨重,特别是内存占用量巨大的问题,它使用Nitro JavaScript引擎,这意味着所有第三方浏览器运行JavaScript将会跟safari一样快。


也许你用UIWebView加载过POST请求的页面,感觉并没有什么难点或者需要注意的地方,那真的是图样图森破了,因为我也这样天真过。直到我踩了很多坑之后,我才发现梦想与现实之间的差别,不过没关系,我又要说另一句名言了:没有挖不到的墙角...,咳咳咳,说错了,请重新来BGM,跟我一起说:没有解决不了的Bug,只有不努力的码农!

1.不需要NSURLSession

2.不需要JavaScript

3.只需要调用俩遍loadRequest


成功源码:

- (void)setupWebView {

    // 创建WKWebView

    WKWebView *webView = [[WKWebViewalloc]init];

    self.webView = webView;

    // 设置代理来确定什么时候网页文件加载完成

    webView.navigationDelegate =self;

    // 测试链接+多调用一次

    [webView loadRequest:[NSURLRequestrequestWithURL:[NSURLURLWithString:@"https://m.baidu.com"]]];

    CSSLog(@"target = %@",self.target);

    // 没加参数前

//    [webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.target]]];

    // 拼接参数后

    NSString *urlStr = [NSStringstringWithFormat:@"%@?user_id=%@",self.target,[SHUserModelloadUserAccount].u_id];

    CSSLog(@"urlStr = %@", urlStr);

    NSURLRequest * requestShare = [[NSURLRequestalloc]initWithURL:[NSURLURLWithString:urlStr]];

    [webView loadRequest:requestShare];

    // WKWebView添加到当前View

    [self.viewaddSubview:webView];

    [webView mas_makeConstraints:^(MASConstraintMaker *make) {

        make.edges.equalTo(self.view);

    }];

}

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view.

    self.view.backgroundColor = [UIColorwhiteColor];

    self.isFirst =YES;

    [selfsetupWebView];

}


原创粉丝点击