Integración de enlaces profundos

Comenzar

Deep link intro

Deep Linking Types

  1. Enlaces profundos diferidos: proporcionan contenido personalizado a usuarios nuevos o antiguos, directamente después de la instalación.
  2. Enlaces profundos directos: proporcionan contenido personalizado directamente a los usuarios existentes, que ya tienen instalada la aplicación móvil.

Unified deep linking (UDL) - an API which enables you to send new and existing users to a specific in-app activity as soon as the app is opened.

Para más información, consulta la guía de enlaces profundos deOneLink™ y la guía para desarrolladores.

Configuración de enlaces profundos de Android

El SDK de AppsFlyer inspecciona el objeto de intención de actividad durante onResume(). Debido a eso, para cada actividad que pueda configurarse o iniciarse con cualquier modo de inicio no estándar, asegúrate de agregar el siguiente código a MainActivity.java en la carga útil de android/app/src/main/java/com...:

...
import android.content.Intent;
...
public class MainActivity extends ReactActivity {
...
    @Override
    public void onNewIntent(Intent intent) {
         super.onNewIntent(intent);
         setIntent(intent);
    }
 }

App Links

Primero, debes generar la huella digital SHA256, luego agregar el siguiente filtro de intención a la actividad relevante en el manifiesto de tu aplicación:

<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.VIEW" />

    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data
        android:host="onelink-basic-app.onelink.me"
        android:scheme="https" />
</intent-filter>

Para más información sobre los enlaces de aplicaciones, consulta la guía aquí.

URI Scheme

En el manifiesto de tu aplicación, agrega el siguiente filtro de intención a la actividad pertinente:

<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:host="mainactivity"
        android:scheme="afshopapp" />
</intent-filter>

For more on URI Scheme check out the guide here.

Configuración de enlaces profundos para iOS

Para registrar el retargeting y utilizar las devoluciones de llamada onAppOpenAttribution/UDL en iOS, el desarrollador debe transmitir la Actividad del usuario / URL a nuestro SDK, a través de los siguientes métodos en el archivo AppDelegate.m :

#import <RNAppsFlyer.h>
// Deep linking
// Open URI-scheme for iOS 9 and above
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *) options {
  [[AppsFlyerAttribution shared] handleOpenUrl:url options:options];
    return YES;
}
// Open URI-scheme for iOS 8 and below
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation {
  [[AppsFlyerAttribution shared] handleOpenUrl:url sourceApplication:sourceApplication annotation:annotation];
  return YES;
}
// Open Universal Links
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {
    [[AppsFlyerAttribution shared] continueUserActivity:userActivity restorationHandler:restorationHandler];
    return YES;
}

Universal Links

Los Enlaces universales enlazan entre una aplicación móvil de iOS y un sitio web/dominio asociado, como el dominio de OneLink de AppsFlyer (xxx.onelink.me). Para ello, es necesario:

  1. Configurar el subdominio de OneLink y enlazar a la aplicación móvil (alojando el archivo 'apple-app-site-association'): AppsFlyer se encarga de esta parte de la configuración de OneLink en tu panel de control).
  2. Configurar la aplicación móvil para registrar los dominios aprobados:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>com.apple.developer.associated-domains</key>
        <array>
            <string>applinks:test.onelink.me</string>
        </array>
    </dict>
</plist>

Para más información sobre los enlaces universales, consulta la guía aquí.

URI Scheme

A URI scheme is a URL that leads users directly to the mobile app.
When an app user enters a URI scheme in a browser address bar box, or clicks on a link based on a URI scheme, the app launches and the user is deep-linked.

Para configurarlo tendrás que:

  1. Agregar un identificador de URL único en la entrada de tipos de URL en el info.plist
  2. Agregar el esquema de URL como valor.

Ejemplo de una configuración de esquema de URL en el info.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  ...
	<key>CFBundleURLTypes</key>
	<array>
		<dict>
			<key>CFBundleURLName</key>
			<string>YOUR.URL.IDENTIFIER</string>
			<key>CFBundleURLSchemes</key>
			<array>
				<string>YOUR-URL-SCHEME</string>
			</array>
		</dict>
	</array>
	...
</dict>
</plist>

For more on URI Scheme check out the guide here.