3

Lorsque vous utilisez les invitations Firebase et accédez aux liens dynamiques au démarrage de l'application sur Android, est-il possible de savoir si l'utilisateur vient d'installer l'application grâce à l'invitation ou était déjà installé?Vérifiez si l'invitation Firebase a conduit au Play Store

Un grand merci,

Borja

Répondre

1

EDIT: Merci à Catalin Morosan pour la réponse

Il se trouve que vous pouvez trouver en utilisant la méthode AppInviteReferral.isOpenedFromPlayStore(result.getInvitationIntent()). Dans l'activité qui s'exécute lorsque vous cliquez sur l'invitation:

// Create an auto-managed GoogleApiClient with access to App Invites. 
mGoogleApiClientInvite = new GoogleApiClient.Builder(this) 
     .addApi(AppInvite.API) 
     .enableAutoManage(this, this) 
     .build(); 

// Check for App Invite invitations and launch deep-link activity if possible. 
// Requires that an Activity is registered in AndroidManifest.xml to handle 
// deep-link URLs. 
boolean autoLaunchDeepLink = false; 
AppInvite.AppInviteApi.getInvitation(mGoogleApiClientInvite, this, autoLaunchDeepLink) 
     .setResultCallback(
       new ResultCallback<AppInviteInvitationResult>() { 
        @Override 
        public void onResult(AppInviteInvitationResult result) { 
         if (result.getStatus().isSuccess()) { 
          // Extract information from the intent 
          Intent intent = result.getInvitationIntent(); 
          String invitationId = AppInviteReferral.getInvitationId(intent); 
          boolean alreadyUser = AppInviteReferral.isOpenedFromPlayStore(result.getInvitationIntent()); 
          if (alreadyUser) { 
           // Do stuff... 
          } else { 
           // Do other stuff... 
          } 
         } 
        } 
       }); 
+1

Cela ne fonctionne pas. AppInviteReferral.hasReferral() renvoie true pour les deux situations. Je vois qu'il y a AppInviteReferral.isOpenedFromPlayStore() qui devrait se comporter comme nous le voulons. –

+0

@CatalinMorosan vous avez raison, je ne l'avais pas eu la chance de le tester jusqu'à présent parce que mon application n'a pas été sur le Play Store. Maintenant c'est et votre réponse fonctionne par opposition à hasReferral() – Borja

0

Basé sur this Google product form post, la bibliothèque des liens dynamiques Firebase ne vérifie les liens profonds entrants une fois par vie de l'application, ce qui signifie que vous auriez besoin de désinstaller et de réinstaller l'application pour elle pour vérifier à nouveau. Cela se répercute sur le comportement de la méthode getInvitation() et il semble que vous puissiez indiquer si l'application a déjà été installée en fonction des résultats de cette méthode.

Pour moi, cela semble terriblement déroutant. À Branch.io nous le faisons complètement différemment: votre objet de données de liaison contiendra toujours un booléen is_first_session, que vous pouvez gérer par programme de la manière que vous choisissez.