最近项目中有个需求,调用第三方提供的登陆接口登陆项目,其中需要对第三方登录的webview返回值进行拦截
1、首先,使用webview加载第三方登录的网页,
webView.loadUrl(url);
2、webview设置调用自定义的webviewclient,
webView.setWebViewClient(new WebViewClient(){@Override public void onPageFinished(WebView view, String url) {mProgressBar.setVisibility(View.GONE);super.onPageFinished(view, url);} }3、重写shouldoverload那个方法,用来拦截登陆的返回值
@Override public boolean shouldOverrideUrlLoading(WebView view, String url) {if(url.contains(redirect_uri)) {//这里对拦截出来的url进行处理,获取url中我们需要的code return true;}return super.shouldOverrideUrlLoading(view, url); }这里有个注意点,只有当点击第2步webview加载完后的登陆时候,这里拦截才有效,才能拦截到我们想要的内容
4、拦截后进行拼接,再次请求,这里就可以使用http请求进行处理了。