android 拦截webview加载url_Android拦截并获取WebView内部POST请求参数的实现方法

本文介绍了如何在Android中拦截并获取WebView内部的POST请求参数。通过修改WebViewClient,注入JavaScript代码来监听Ajax请求,从而在H5不知情的情况下获取请求参数。详细讲述了两种实现方案及其工作原理和注意事项。
摘要由CSDN通过智能技术生成

起因:

有些时候自家APP中嵌入的H5页面并不是自家的。但是很多时候又想在H5不知情的情况下获取H5内部请求的参数,这应该怎么做到呢?

带着这个疑问,就有了这篇博客。

实现过程:

方案一:

最开始想到的方案是直接拦截H5中所有的请求:

webView.setWebViewClient(new WebViewClient() {

@Override

public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {

try {

URL url = new URL(request.getUrl());

} catch (MalformedURLException e) {

e.printStackTrace();

}

Log.e("InternetActivity", request + "");

return super.shouldInterceptRequest(view, request);

}

});

但是通过此方法只能获取get请求的参数(因为参数直接拼在了url链接中),对于post请求的参数无可奈何。

方案二:

后来参考了request_data_webviewclient,有了新的实现方式,具体原理为:给H5注入一段js代码,目的是在每次Ajax请求都会调用Android原生的方法,将请求参数传给客户端

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值