Soundcloud mobile auth与Google+;返回空白页?

Soundcloud mobile auth与Google+;返回空白页?,mobile,login,oauth,soundcloud,Mobile,Login,Oauth,Soundcloud,我在尝试通过谷歌登录SoundCloud授权页面(www.SoundCloud.com/connect)时遇到问题。当用户尝试使用该功能进行身份验证时,他们会看到一个空白页面,并且不会重定向回应用程序。它适用于Facebook登录和普通用户/通行证登录。如果您使用的是WebView,问题是它不支持弹出窗口,并且验证流需要这些窗口。通过按照以下方式实现弹出式支持,使其正常工作 private void setUpWebView() { webView = new WebView(getC

我在尝试通过谷歌登录SoundCloud授权页面(www.SoundCloud.com/connect)时遇到问题。当用户尝试使用该功能进行身份验证时,他们会看到一个空白页面,并且不会重定向回应用程序。它适用于Facebook登录和普通用户/通行证登录。

如果您使用的是WebView,问题是它不支持弹出窗口,并且验证流需要这些窗口。通过按照以下方式实现弹出式支持,使其正常工作

private void setUpWebView() {
    webView = new WebView(getContext());
    webView.setWebChromeClient(new MyChromeClient());
    final WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
    webSettings.setSupportMultipleWindows(true);
    webView.loadUrl(url);
}
final class MyChromeClient extends WebChromeClient {

    // Add new webview in same window
    @Override
    public boolean onCreateWindow(WebView view, boolean dialog,
            boolean userGesture, Message resultMsg) {
        WebView childView = new WebView(getContext());
        childView.getSettings().setJavaScriptEnabled(true);
        childView.setWebChromeClient(this);
        childView.setLayoutParams(FILL);
        mContent.addView(childView);
        WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;
        transport.setWebView(childView);
        resultMsg.sendToTarget();
        return true;
    }

    // remove new added webview whenever onCloseWindow gets called for new webview.
    @Override
    public void onCloseWindow(WebView window) {
        mContent.removeViewAt(mContent.getChildCount() - 1);
    }
}