ios利用runtime替換系統(tǒng)方法或者系統(tǒng)控件的方法(解決WKWebView類似的post請求)

前兩天,由于項目中后臺數(shù)據(jù)的調(diào)整,導致我在加載WKWebView的時候,不能利用cookie事先保存自己的用戶信息,只能在LoadRequest的時候把參數(shù)帶進去,這樣讓我一時有點郁悶。去網(wǎng)上查了一下WKWebView的Post請求,大致有點亂,這里我來給大家總結(jié)一下下。。。

1,以需要加載網(wǎng)頁的主地址創(chuàng)建一個可變的NSMutableURLRequest,設置請求的HTTPMethod屬性為POST。

2,拼接參數(shù),把需要帶入的參數(shù)拼接為字符串,設置給請求的請求體。


[request setHTTPBody:[ @“params” dataUsingEncoding:NSUTF8StringEncoding]];

parmas的格式為:parms1=value1&parms2=value2&parms3=value3


3,WKWebView調(diào)用LoadRequest方法

4,自定義一個WKWebView的LoadRequest方法,替換掉WKWebView控件本身的方法。

寫一個WKWebView的分類,在分類的.m中實現(xiàn)如下兩個方法

圖1

load方法會在程序一啟動的時候加載,即是在程序啟動的時候就會把方法交換了

圖2
圖3

注意導入#import <objc/runtime.h>的頭文件

這里面主要就是利用runtime,加程序加載的時候,就把WKWebView的LoadRequest方法,替換成自己寫的方法,用一段js代碼把每個參數(shù)帶入到網(wǎng)頁。

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


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容