WKWebView攔截請求資源

方案一:
使用 NSURLProtocol 攔截 WKWebView 請求
問題:
1、攔截請求需要使用私有接口(WKBrowsingContextController類和registerSchemeForCustomProtocol方法),存在兼容性風(fēng)險以及上架被拒的風(fēng)險
2、存在 POST 請求存在 body 會被清空的問題(由于我們只需要注冊file scheme,不注冊http/https scheme,所以不存在此問題)
3、對ATS支持不足,Allow Arbitrary Loads 選項設(shè)置為NO,同時通過 registerSchemeForCustomProtocol 注冊了 http(s) scheme,WKWebView 發(fā)起的所有 http 網(wǎng)絡(luò)請求將被阻塞(即便將Allow Arbitrary Loads in Web Content 選項設(shè)置為YES)

方案二:
使用 WKURLSchemeHandler 攔截 WKWebView 請求
問題:
1、該方案只兼容 iOS 11 及以上設(shè)備
2、前端無法通過document.cookie獲取客戶端同步的cookie(如果前端不使用cookie,就不存在此問題)

NSProtocol方案:
1、https://madaocn.github.io/urlprotocol-hook-wkwebview/

2、https://juejin.im/post/6847902219434459144

3、http://m.itdecent.cn/p/f88c9d094aa5?utm_source=desktop&utm_medium=timeline

4、http://m.itdecent.cn/p/4fc13d4d5607/

5、iOS - NSProtocol 攔截 WKWebView POST 請求 body 會被清空的問題解決

WKURLSchemeHandler方案:
1、https://zhuanlan.zhihu.com/p/56965133

2、http://m.itdecent.cn/p/a9d7b1bc3ae6

3、WKWebView離線包開發(fā)小記

4、http://m.itdecent.cn/p/6bae04c91297

其他:
一站式解決WKWebView各類問題

WKWebView 離線包方案比較

注:文章末尾存在規(guī)避使用私有方法風(fēng)險的方法
NSURLPtotocol無法攔截AFN ,WKWebView

WKWebView 那些坑

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

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

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