Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo habilitar las pestañas personalizadas de Chrome para iniciar sesión en Facebook con Android SDK

Estoy usando Facebook SDK versión 4.11.0 en mi aplicación.

Según los pasos descritos en la página Documentos oficiales , he añadido las siguientes cosas dentro del archivo de manifiesto para habilitar las pestañas personalizadas de Chrome.

<activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <activity android:name="com.facebook.CustomTabActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="@string/fb_login_protocol_scheme" /> </intent-filter> </activity> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id" /> 

fb_login_protocol_scheme se agrega a strings.xml con el valor 'fb + app_id'

El proceso de autenticación está funcionando bien sin ningún problema.
La única preocupación es cuando hago clic en el botón de inicio de sesión, el diálogo de inicio de sesión no se abre en las pestañas personalizadas de Chrome, sino en el formato habitual de diálogo de vista web.

¿Hay algo que falta aquí para ser agregado al proyecto para habilitar las pestañas personalizadas de Chrome?

  • La URL de Google Play desordena el diálogo compartido de Facebook
  • Error de Gradle después de incluir facebook sdk
  • Android Facebook SDK 4 en Eclipse
  • ¿Dónde puedo ver los parámetros del evento con los eventos de la aplicación de Facebook Analytics?
  • Compartir la devolución de llamada no funciona con Facebook SDK 4 Android
  • Inicio de sesión de Android Facebook SDK 4.0 con LoginManager
  • NullPointerExcepetion Facebook sdk v4.5.0 cuando habilite Proguard (cuando intente ingresar usando la biblioteca de Parse)
  • Cómo obtener la dirección de correo electrónico del usuario registrado con la solicitud de gráfico en Facebook Android sdk 4.0
  • One Solution collect form web for “Cómo habilitar las pestañas personalizadas de Chrome para iniciar sesión en Facebook con Android SDK”

    Puedes comprobar por qué las pestañas personalizadas de Chrome no funcionan con este fragmento:

     private static final String CUSTOM_TABS_SERVICE_ACTION = "android.support.customtabs.action.CustomTabsService"; private static final String CHROME_PACKAGE = "com.android.chrome"; private boolean isCustomTabsAllowed(Context context) { boolean isCustomTabsAllowed = true; if (!isCustomTabsEnabled(context)) { Log.d(TAG, "isCustomTabsEnabled false"); isCustomTabsAllowed = false; } if (!isChromeCustomTabsSupported(context)) { Log.d(TAG, "isChromeCustomTabsSupported false"); isCustomTabsAllowed = false; } if (!Validate.hasCustomTabRedirectActivity(context)) { Log.d(TAG, "hasCustomTabRedirectActivity false"); isCustomTabsAllowed = false; } return isCustomTabsAllowed; } private boolean isCustomTabsEnabled(Context context) { final String appId = Utility.getMetadataApplicationId(context); final Utility.FetchedAppSettings settings = Utility.getAppSettingsWithoutQuery(appId); return settings != null && settings.getCustomTabsEnabled(); } private boolean isChromeCustomTabsSupported(final Context context) { Intent serviceIntent = new Intent(CUSTOM_TABS_SERVICE_ACTION); serviceIntent.setPackage(CHROME_PACKAGE); List<ResolveInfo> resolveInfos = context.getPackageManager().queryIntentServices(serviceIntent, 0); return !(resolveInfos == null || resolveInfos.isEmpty()); } 

    Estos son los métodos llamados por el SDK de Facebook antes de lanzar las pestañas personalizadas de Chrome, por lo que simplemente llamar a isCustomTabsAllowed puede entender lo que está mal con su aplicación.

    Si isCustomTabsEnabled es false, hay algún problema en la configuración de la aplicación. Verifique en la consola de Facebook en la sección de la revisión de la aplicación que la aplicación está en vivo y disponible para el público.

    Si isChromeCustomTabsSupported es falso, probablemente tengas una versión anterior de Chrome que no admita las pestañas personalizadas de Chrome, intenta actualizar a la última versión de Chrome.

    Si hasCustomTabRedirectActivity es falso hay algunos problemas en la integración, verifique que siguió correctamente todos los pasos indicados en la guía . También compruebe que APP_ID es el mismo que se utiliza en la cadena facebook_app_id contrario el cuadro de diálogo de inicio de sesión no usará las pestañas personalizadas de Chrome.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.