Android WebView con inicio de sesión en Facebook
Tengo una aplicación que contiene una vista web. Dentro de la webview, el usuario debe iniciar sesión en Facebook usando el botón de inicio de sesión predeterminado y la autenticación. En mi webview, después de que el usuario inicie sesión en la url de handshake oauth contiene un "acceso denegado … usuario denegado su solicitud" error. Sin embargo, cuando visito la misma url en el navegador central, todo funciona como se esperaba y el usuario obtiene con éxito una sesión. Supongo que hay algunos métodos que necesito implementar en WebViewClient o WebChromeClient para dar a mi webview la capacidad de navegación completa. Sin embargo, no sé qué hacer. ¿Pensamientos?
- ¿Hay de todos modos para abrir una URL de facebook en la aplicación de Facebook de un teléfono?
- Compartir imagen no funciona en viber y facebook
- Facebook android sdk v4 inicio de sesión cancelar
- Facebook android sdk 3.0 SSO
- Biblioteca común en android para compartir en las redes sociales?
- Cómo recuperar Twitter y Facebook Autenticación y Token a través de las clases de Administrador de cuentas de Android
- Com.facebook.widget.loginbutton error en xml
- Reproducción automática de video como facebook, Android
- ¿Cómo compartir fotos con CAPTION a través de la intención de compartir de Android en Facebook?
- Crear una solicitud en Facebook SDK 4 (Android)
- Creación de la clave de liberación de Facebook SDK 3.0 en Android
- SwarmConnect Facebook login
- Cómo mantenerse conectado a facebook en una aplicación de Android
Bueno, puede utilizar el SDK de Facebook para su implementación.
Básicamente en una webview que han mostrado su contenido como este
private void setUpWebView(int margin) { LinearLayout webViewContainer = new LinearLayout(getContext()); mWebView = new WebView(getContext()); mWebView.setVerticalScrollBarEnabled(false); mWebView.setHorizontalScrollBarEnabled(false); mWebView.setWebViewClient(new FbDialog.FbWebViewClient()); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.loadUrl(mUrl); mWebView.setLayoutParams(FILL); mWebView.setVisibility(View.INVISIBLE); mWebView.getSettings().setSavePassword(false); webViewContainer.setPadding(margin, margin, margin, margin); webViewContainer.addView(mWebView); mContent.addView(webViewContainer); } private class FbWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { Util.logd("Facebook-WebView", "Redirect URL: " + url); if (url.startsWith(Facebook.REDIRECT_URI)) { Bundle values = Util.parseUrl(url); String error = values.getString("error"); if (error == null) { error = values.getString("error_type"); } if (error == null) { mListener.onComplete(values); } else if (error.equals("access_denied") || error.equals("OAuthAccessDeniedException")) { mListener.onCancel(); } else { mListener.onFacebookError(new FacebookError(error)); } FbDialog.this.dismiss(); return true; } else if (url.startsWith(Facebook.CANCEL_URI)) { mListener.onCancel(); FbDialog.this.dismiss(); return true; } else if (url.contains(DISPLAY_STRING)) { return false; } // launch non-dialog URLs in a full browser getContext().startActivity( new Intent(Intent.ACTION_VIEW, Uri.parse(url))); return true; }
- Datos de servicio web de caché de android
- ScrollView: ¿Cómo reproducir snapToInterval y snapToAlignment para Android?