当前位置: 代码迷 >> 综合 >> 使用webview调用第三方登录时候遇到的坑
  详细解决方案

使用webview调用第三方登录时候遇到的坑

热度:104   发布时间:2023-10-12 19:00:29.0

最近项目中有个需求,调用第三方提供的登陆接口登陆项目,其中需要对第三方登录的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请求进行处理了。