美文网首页iOS学习iOS 开发每天分享优质文章技术重塑
ios利用runtime替换系统方法或者系统控件的方法(解决WK

ios利用runtime替换系统方法或者系统控件的方法(解决WK

作者: 风之谷等风来 | 来源:发表于2017-06-09 15:02 被阅读180次

前两天,由于项目中后台数据的调整,导致我在加载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)


相关文章

网友评论

    本文标题:ios利用runtime替换系统方法或者系统控件的方法(解决WK

    本文链接:https://www.haomeiwen.com/subject/qydafxtx.html