2015-06-03 5 views
2

У меня возникли проблемы с попыткой входа в систему через Google на странице авторизации SoundCloud (www.soundcloud.com/connect). Когда пользователь пытается аутентифицироваться, они видят пустую страницу, и они не перенаправляются обратно в приложение. Он отлично подходит для входа в Facebook и обычного пользователя/пароля.Soundcloud mobile auth с Google+ возвращает пустую страницу?

ответ

0

Если вы используете WebView, проблема в том, что он не поддерживает всплывающие окна, и они требуются потоком auth. Получил его, выполнив поддержку всплывающих окон по строкам 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); 
    } 
} 
Смежные вопросы