1. 程式人生 > >使用webview呼叫第三方登入時候遇到的坑

使用webview呼叫第三方登入時候遇到的坑

最近專案中有個需求,呼叫第三方提供的登陸介面登陸專案,其中需要對第三方登入的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請求進行處理了。