ios利用runtime替换系统方法或者系统控件的方法(解决WKWebView类似的post请求)

前两天,由于项目中后台数据的调整,导致我在加载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中实现如下两个方法

ios利用runtime替换系统方法或者系统控件的方法(解决WKWebView类似的post请求)_第1张图片
图1

load方法会在程序一启动的时候加载,即是在程序启动的时候就会把方法交换了

ios利用runtime替换系统方法或者系统控件的方法(解决WKWebView类似的post请求)_第2张图片
图2
ios利用runtime替换系统方法或者系统控件的方法(解决WKWebView类似的post请求)_第3张图片
图3

注意导入#import 的头文件

这里面主要就是利用runtime,加程序加载的时候,就把WKWebView的LoadRequest方法,替换成自己写的方法,用一段js代码把每个参数带入到网页。

[附上DEMO:](https://github.com/youlianchun/WKWebView_POST)


你可能感兴趣的:(ios利用runtime替换系统方法或者系统控件的方法(解决WKWebView类似的post请求))