通过重写WebViewClient默认方法,我们可以实现拦截网络请求的功能
拦截HttpRequest
override fun shouldOverrideUrlLoading(view: WebView,request: WebResourceRequest
): Boolean
返回true表示阻止该网页加载,返回false表示不拦截
HttpResponse
override fun shouldInterceptRequest(view: WebView,request: WebResourceRequest
): WebResourceResponse?
null表示返回原Response
WebResourceResponse(null, null, null)表示返回一个空的Response,相当于拦截Response
还可以自己执行一个Call,然后返回对应的Response,相当于替换Response
注意,这个方法只是修改了服务器返回Response,返回篡改后的数据给WebView
对于服务器来说,处理的仍然是原始的Request,返回的仍然是原始的Response
重写该方法并不会影响到服务器的逻辑