SDK do Flutter - Suporte a Deep Links

Documento

Suporte de ligações diretas

As ligações diretas são URLs que direcionam os utilizadores para conteúdos específicos dentro de uma aplicação. Quando um utilizador toca numa hiperligação num dispositivo onde a aplicação já está instalada, a aplicação abre-se diretamente para a página do produto ou experiência pretendida. Os links de rastreamento singulares suportam links diretos e links diretos adiados. Para obter mais detalhes, consulte nossas Perguntas frequentes sobre links diretos e Perguntas frequentes sobre links singulares.


Requisitos


Implementação

Atualizar o AppDelegate do iOS

Pré-requisitos do iOS

Para permitir que o SDK Singular processe dados relacionados à inicialização e manipule links diretos em seu aplicativo iOS, você precisa passar os objetos launchOptions e userActivity para o SDK Singular em seu arquivo AppDelegate.m. Esses objetos, fornecidos pelo iOS, contêm informações críticas sobre como e por que seu aplicativo foi iniciado, que o Singular usa para rastreamento de atribuição e navegação de link profundo.

Objective-C Swift
// Top of AppDelegate.m
#import "SingularAppDelegate.h"

- (BOOL)application:(UIApplication *)application 
     didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
       [GeneratedPluginRegistrant registerWithRegistry:self];
       [SingularAppDelegate shared].launchOptions = launchOptions;
       return [super application:application 
         didFinishLaunchingWithOptions:launchOptions];
}

- (BOOL)application:(UIApplication *)application 
     continueUserActivity:(NSUserActivity *)userActivity 
     restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> 
       *restorableObjects))restorationHandler {
         [[SingularAppDelegate shared] continueUserActivity:userActivity 
           restorationHandler:restorationHandler];
     return [super application:application continueUserActivity:userActivity 
         restorationHandler:restorationHandler ];
}

- (BOOL)application:(UIApplication *)app 
     openURL:(NSURL *)url 
     options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
       [[SingularAppDelegate shared] handleOpenUrl:url options:options];
       return [super application:app openURL:url options: options];
}

Atualizar a MainActivity do Android

Pré-requisitos do Android

Para permitir que o SDK Singular processe dados relacionados à inicialização e manipule links profundos em seu aplicativo Android, você precisa modificar o arquivo MainActivity para passar o objeto Intent para o SDK Singular. O objeto Intent, fornecido pelo sistema Android, contém informações sobre como e por que seu aplicativo foi iniciado, que o Singular usa para rastreamento de atribuição e navegação de link profundo.

MainActivity.java MainActivity.kt
// Add as part of the imports at the top of the class
import android.content.Intent;
import com.singular.flutter_sdk.SingularBridge;

// Add to the MainActivity class
@Override
public void onNewIntent(Intent intent) {
  if(intent.getData() != null) {
    setIntent(intent);
    super.onNewIntent(intent);
    SingularBridge.onNewIntent(intent);
  }
}

Atualizar o objeto SingularConfig

  • Adicione o retorno de chamada singularLinksHandler ao objeto SingularConfig durante a inicialização do SDK para manipular os dados de deep link recebidos e os dados de deep link adiados.

Observação: O singularLinksHandler é acionado somente quando o aplicativo é aberto por meio de um Singular Link. Para obter mais informações, consulte (consulte as Perguntas frequentes sobre links singulares).


Notas sobre o comportamento de retorno de chamada do singularLinksHandler:

  • Em uma nova instalação, não há uma URL aberta quando o aplicativo é iniciado. Portanto, o Singular deve concluir a atribuição ao último ponto de contato e determinar se o link de rastreamento continha um valor configurado de Deep Link ou Deferred Deep Link (DDL). Esse processo ocorre quando o SDK da Singular envia a primeira sessão para os servidores da Singular. Se aplicável, o valor do deep link é retornado para o callback singularLinksHandler do SDK e apresentado no parâmetro "deeplink".

    Para testar esse cenário:

    1. Desinstale a aplicação do dispositivo (se estiver atualmente instalada).
    2. Reponha o seu Google Advertising ID (GAID).
    3. Clique na ligação de seguimento Singular a partir do dispositivo. Certifique-se de que o link de rastreamento Singular está configurado com um valor de link profundo.
    4. Instale e abra a aplicação.

    Dica profissional: Ao testar links diretos ou links diretos adiados em uma versão de desenvolvimento do seu aplicativo com um nome de pacote diferente (por exemplo, com.example.dev em vez de com.example.prod), certifique-se de que o link de rastreamento esteja configurado especificamente para o nome do pacote do aplicativo de desenvolvimento, e não para o do aplicativo de produção. Além disso, depois de clicar no link de teste no seu dispositivo, instale a compilação de desenvolvimento diretamente no dispositivo de teste (por exemplo, através do Android Studio ou de um APK) em vez de transferir a aplicação de produção a partir da loja de aplicações.

    A atribuição deve ser concluída com êxito e o valor DDL será passado para o aplicativo.

  • Se um parâmetro passthrough (_p) for incluído no link de rastreamento, o parâmetro de passagem do retorno de chamada singularLinksHandler conterá os dados correspondentes. Isso é útil para capturar dados adicionais do clique no aplicativo.
  • Para capturar todos os parâmetros de consulta do URL do link de rastreamento, anexe o parâmetro _forward_params=2 ao link de rastreamento. Todos os parâmetros de consulta serão incluídos no parâmetro deeplink do retorno de chamada singularLinksHandler.
  • Se o aplicativo já estiver instalado, clicar em um Singular Link abrirá o aplicativo. A Singular usa a tecnologia Android App Links para fazer isso. O sistema operacional Android fornecerá uma URL aberta contendo todo o link de rastreamento do Singular. Durante a inicialização do SDK, o Singular SDK analisará o Android Intent, extrairá os valores de deeplink e passthrough e os retornará através do callback singularLinksHandler.