Integração de deep linking

Começando

Deep link intro

Deep Linking Types

  1. Deferred Deep Linking - fornecendo conteúdo personalizado para novos ou antigos usuários, diretamente após a instalação.
  2. Direct Deep Linking - fornecendo diretamente o conteúdo personalizado aos usuários existentes, que já têm o aplicativo móvel instalado.

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 mais informações, consulte o guia OneLink™ Deep Linking e o guia de desenvolvedores.

Configuração do Android Deeplink

O SDK da AppsFlyer inspeciona o objeto de intent de atividade durante onResume(). Por isso, para cada atividade que pode ser configurada ou iniciada com qualquer modo de inicialização não padrão, certifique-se de adicionar o seguinte código a MainActivity.java no payload 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

Primeiro, você precisa gerar a impressão digital SHA256 e, em seguida, adicionar o seguinte filtro de intent à atividade relevante no manifesto do seu aplicativo:

<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 mais informações sobre links de aplicativo, consulte o guia aqui.

URI Scheme

No manifesto do seu aplicativo, adicione o seguinte filtro de intent à sua atividade relevante:

<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.

Configuração do iOS Deeplink

Para registrar o redirecionamento e usar os callbacks onAppOpenAttribution/UDL no iOS, o desenvolvedor precisa passar a Atividade do usuário/URL para nosso SDK, por meio dos seguintes métodos no arquivo 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

Link de links universais entre um aplicativo móvel iOS e um site/domínio associado, como o domínio OneLink da AppsFlyer (xxx.onelink.me). Para isso, é necessário:

  1. Configurar o subdomínio do OneLink e o link para o aplicativo móvel (hospedando o arquivo 'apple-app-site-association' - a AppsFlyer cuida dessa parte na configuração do Onelink em seu painel)
  2. Configure o aplicativo móvel para registrar domínios aprovados:
<?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 mais informações sobre links universais, consulte o guia aqui.

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 configurá-lo, você terá que:

  1. Adicionar um identificador de URL exclusivo na entrada de tipos de URL no aplicativo info.plist
  2. Adicionar esquema de URL como um valor.

exemplo de configuração de esquema de URL no 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.