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


Enlace profundo de Facebook en Android

Estoy intentando implementar la función Deep Linking de Facebook en mi aplicación y encontré el siguiente escenario:

Tengo una actividad llamada MainActivity que se declara así:

  • Establecimiento de elevación en XML en AppCompat CardView en Android 5.0
  • Cómo actualizar un fragmento de un FragmentPagerAdapter?
  • ¿Qué compilador utiliza Android NDK?
  • ¿Cómo quitar la descripción del gráfico en MPAndroidChart?
  • Emulador de Android 4.0 no se iniciará
  • Retrofit - Interceptar respuestas globalmente
  • <activity android:name="com.mypackage.android.MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

    Esta actividad + mi nombre de paquete también se declaran en la configuración de mi aplicación en el sitio web de desarrolladores de Facebook.

    Una vez que un enlace se hace clic en la aplicación de Facebook, se supone que manejar este evento a través del método onCreate de mi actividad. El código siguiente maneja el evento:

      public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Uri target = getIntent().getData(); if (target != null){ // got here via Facebook deep link // once I'm done parsing the URI and deciding // which part of my app I should point the client to // I fire an intent for a new activity and // call finish() the current activity (MainActivity) }else{ // activity was created in a normal fashion } } 

    Todo va según el plan excepto para el siguiente escenario:

    1. El usuario inició mi aplicación
    2. MainActivity creado
    3. Se creó SecondaryActivity
    4. Acabado de MainActivity
    5. La aplicación se pasa al fondo mediante el botón de inicio del dispositivo
    6. El enlace profundo se hace clic en la aplicación de Facebook

    En este caso, mi aplicación va a primer plano de nuevo, pero OnActivity onCreate / onNewIntent no se llama, en lugar de SecondaryActivity onResume () se llama y restaurado a su último estado.

    Nota: He probado este problema en un Samsung Nexus con Android 4.2.1 y conseguí este resultado, aunque cuando probé en Galaxy S1 con Android 2.3.5 funcionó como esperaba inicialmente.

    Cualquier ayuda sería muy apreciada, Gracias.

  • Cómo agregar efectos de imagen en android?
  • Capture la pantalla de Android y cree el video programáticamente
  • La disposición del cajón no se cierra en la parte posterior presionada (dependiendo del soporte-v4 lib)
  • Cómo obtener mi hotspot wifi ssid en mi sistema android actual
  • Dropdowns de Bootstrap de Twitter Unclickable en tabletas
  • Instalación silenciosa en dispositivos Android
  • 3 Solutions collect form web for “Enlace profundo de Facebook en Android”

    Facebook está iniciando tu aplicación desde su propia aplicación, iniciando explícitamente tu "MainActivity" (la que has proporcionado en la página del desarrollador).

    Por lo que – el comportamiento predeterminado de Android es: si la aplicación ya se ejecuta, a continuación, llamar de nuevo a startActivity() no iniciará nueva tarea desde cero, sino sólo restaurar a primer plano la tarea ya está ejecutando.

    Pero las buenas noticias son que puedes cambiar este comportamiento del defecto agregando a tu MainActivity el android:launchMode="singleTask" . Definición es:

    El sistema crea una nueva tarea e instancia la actividad en la raíz de la nueva tarea. Sin embargo, si ya existe una instancia de la actividad en una tarea separada, el sistema direcciona la intención a la instancia existente a través de una llamada a su método onNewIntent (), en lugar de crear una nueva instancia. Sólo puede existir una instancia de la actividad a la vez.

    Desde este punto siempre se puede responder a la intención inicial, y desde ese punto siempre se puede volver a la tarea que ya estaba en segundo plano (si existe) reiniciando la actividad con ambos indicadores Intent.FLAG_ACTIVITY_SINGLE_TOP && Intent.FLAG_ACTIVITY_CLEAR_TOP combinación

    Consulte http://developer.android.com/guide/topics/manifest/activity-element.html

    Usted puede jugar con:

     android:clearTaskOnLaunch android:noHistory android:launchMode 

    Necesita tener más información en su filtro de intenciones:

     <intent-filter> <action android:name="android.intent.action.VIEW"></action> <category android:name="android.intent.category.DEFAULT"></category> <category android:name="android.intent.category.BROWSABLE"></category> <data android:host="www.yoursite.com" android:scheme="http"></data> </intent-filter> 

    Esto captura los enlaces que van a tu sitio (asegúrate de cambiar la URL) y diriges a cualquier actividad en la que defina este filtro de intenciones.

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