title: Android Google login not working inside WebView
body: <p>I am new to android development. Trying to integrate FB and Google+ login in Android web view. FB login is working fine. But Google login is not allowing to login. I referred a few links but unable to succeed. </p>
  
  <p>Problem is after providing user name and password in Gmail my web site is not sign in</p>
  
  <p><a href="https://stackoverflow.com/questions/36839965/a-webview-overlay-over-another-webview">A webview overlay over another webview</a></p>
  
  <p><a href="https://stackoverflow.com/questions/28125741/google-sign-in-not-working-android-webview-app">Google sign in not working android webview app</a></p>
  
  <p><a href="https://stackoverflow.com/questions/28125741/google-sign-in-not-working-android-webview-app">Google sign in not working android webview app</a></p>
  
  <pre><code>private class MyCustomWebViewClient extends WebViewClient {
      @Override
      public boolean shouldOverrideUrlLoading(WebView view, String url) {
          String host = Uri.parse(url).getHost();
          Log.d("Loading URL", url);
          if (host.equals(target_url_prefix)) {
              // This is my web site, so do not override; let my WebView load
              // the page
              if (mWebviewPop != null) {
                  mWebviewPop.setVisibility(View.GONE);
                  mContainer.removeView(mWebviewPop);
                  mWebviewPop = null;
              }
              return false;
          }
  
          if (host.contains("m.facebook.com") || host.contains("facebook.co")
                  || host.contains("google.co")
                  || host.contains("www.facebook.com")
                  || host.contains(".google.com")
                  || host.contains(".google")
                  || host.contains("accounts.google.com/signin/oauth/consent")
                  || host.contains("accounts.youtube.com")
                  || host.contains("accounts.google.com")
                  || host.contains("accounts.google.co.in")
                  || host.contains("www.accounts.google.com")
                  || host.contains("oauth.googleusercontent.com")
                  || host.contains("content.googleapis.com")
                  || host.contains("ssl.gstatic.com")
              //     || host.contains("https://accounts.google.com/signin/oauth/consent")
  
          ) {
              return false;
          }
          // Otherwise, the link is not for a page on my site, so launch
          // another Activity that handles URLs
  
          Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
          startActivity(intent);
          return true;
      }
  
      @Override
      public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
          Log.d("onReceivedSslError", "onReceivedSslError");
          super.onReceivedSslError(view, handler, error);
      }
  
      @Override
      public void onPageFinished(WebView view, String url) {
          if (url.startsWith("https://m.facebook.com/v2.7/dialog/oauth")
  
  
          ) {
              if (mWebviewPop != null) {
                  mWebviewPop.setVisibility(View.GONE);
                  mContainer.removeView(mWebviewPop);
                  mWebviewPop = null;
              }
              view.loadUrl("https://www.cbazaar.com");
              return;
          }
  
          super.onPageFinished(view, url);
      }
  }
  
  private class UriWebChromeClient extends WebChromeClient {
  
      @Override
      public boolean onCreateWindow(WebView view, boolean isDialog, boolean isUserGesture, Message resultMsg) {
          mWebviewPop = new WebView(mContext);
          mWebviewPop.setVerticalScrollBarEnabled(false);
          mWebviewPop.setHorizontalScrollBarEnabled(false);
          mWebviewPop.setWebViewClient(new MyCustomWebViewClient());
          mWebviewPop.setWebChromeClient(new UriWebChromeClient());
          mWebviewPop.getSettings().setJavaScriptEnabled(true);
          mWebviewPop.clearHistory();
          mWebviewPop.clearFormData();
          mWebviewPop.clearCache(true);
          mWebviewPop.getSettings().setSavePassword(true);
          mWebviewPop.getSettings().setSaveFormData(true);
          mWebviewPop.getSettings().setUserAgentString(USER_AGENT_FAKE);
  
          builder = new AlertDialog.Builder(MainActivity.this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT).create();
  
          builder.setTitle("");
          builder.setView(mWebviewPop);
  
          builder.setButton("close", new DialogInterface.OnClickListener() {
              @Override
              public void onClick(DialogInterface dialog, int id) {
                  mWebviewPop.destroy();
                  dialog.dismiss();
  
              }
          });
  
          builder.show();
          builder.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM);
  
               /*   CookieManager cookieManager = CookieManager.getInstance();
                  cookieManager.setAcceptCookie(true);
                  if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.LOLLIPOP) {
                      cookieManager.setAcceptThirdPartyCookies(mWebviewPop,true);
                  }
      */
  
          WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
          transport.setWebView(mWebviewPop);
          resultMsg.sendToTarget();
  
          return true;
      }
  
  
      @Override
      public void onCloseWindow(WebView window) {
  
          try {
              mWebviewPop.destroy();
          } catch (Exception e) {
          }
  
          try {
              builder.dismiss();
  
          } catch (Exception e) {
          }
  
      }
  
  }
  </code></pre>