前两天,由于项目中后台数据的调整,导致我在加载WKWebView的时候,不能利用cookie事先保存自己的用户信息,只能在LoadRequest的时候把参数带进去,这样让我一时有点郁闷。去网上查了一下WKWebView的Post请求,大致有点乱,这里我来给大家总结一下下。。。
1,以需要加载网页的主地址创建一个可变的NSMutableURLRequest,设置请求的HTTPMethod属性为POST。
2,拼接参数,把需要带入的参数拼接为字符串,设置给请求的请求体。
[request setHTTPBody:[ @“params” dataUsingEncoding:NSUTF8StringEncoding]];
parmas的格式为:parms1=value1&parms2=value2&parms3=value3
3,WKWebView调用LoadRequest方法
4,自定义一个WKWebView的LoadRequest方法,替换掉WKWebView控件本身的方法。
写一个WKWebView的分类,在分类的.m中实现如下两个方法
图1
load方法会在程序一启动的时候加载,即是在程序启动的时候就会把方法交换了
图2
图3
注意导入#import <objc/runtime.h>的头文件
这里面主要就是利用runtime,加程序加载的时候,就把WKWebView的LoadRequest方法,替换成自己写的方法,用一段js代码把每个参数带入到网页。
[附上DEMO:](https://github.com/youlianchun/WKWebView_POST)