【问题标题】:Soundcloud mobile auth with Google+ returns a blank page?使用 Google+ 的 Soundcloud 移动身份验证返回空白页?
【发布时间】:2015-06-03 17:41:59
【问题描述】:

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

【问题讨论】:

    标签: mobile login oauth soundcloud


    【解决方案1】:

    如果您使用的是 WebView,问题是它不支持弹出窗口,并且它们是身份验证流程所必需的。通过按照https://stackoverflow.com/a/8022295 实现弹出窗口支持使其工作。

    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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-25
      相关资源
      最近更新 更多