2017-07-28 4 views
0

J'ai recherché sur le Web et sur le SO un problème similaire, et bien que d'autres semblent avoir rencontré ce problème, leurs solutions ne fonctionnent pas pour moi.Les liens dynamiques Firebase ne fonctionnent pas - Paramètre DFL

DFL parameter in Firebase Dynamic Links Builder

A partir d'Android, je tente de mettre en œuvre les liens dynamiques pour mon application. L'application nécessite des paramètres supplémentaires sur le lien dynamique, donc je construis manuellement le lien en fonction de l'information ici: https://firebase.google.com/docs/dynamic-links/create-manually.

J'ai créé mon lien de la manière suivante (code abrégé aux fins de cet article)

Uri.Builder builder = new Uri.Builder() 
      .scheme("https") 
      .authority(AppPrivate.Invitation.APP_CODE + ".app.goo.gl") 
      .path("/") 
      .appendQueryParameter("link", link) 
      .appendQueryParameter("apn", AppPrivate.PACKAGE) 
      .appendQueryParameter("dfl", desktopLink); 

Pour mon cas d'utilisation les link et desktopLink paramètres sont les mêmes - ils sont des URL réelles de travail sur mon site . Quel que soit le périphérique que l'utilisateur utilise avec le lien dynamique, il doit effectuer l'action souhaitée. Encore une fois, à des fins de simplement obtenir ce travail, j'ai lié à notre site Web principal (https://www.mytravelerapp.com).

Lorsque j'envoie l'invitation de mon appareil Android, je produis une intention basée sur l'exemple de code ici: https://github.com/firebase/quickstart-android/blob/master/invites/app/src/main/java/com/google/firebase/quickstart/invites/MainActivity.java

return new AppInviteInvitation.IntentBuilder(context.getString(R.string.content_trip_invitation_title)) 
       .setMessage(message) 
       .setDeepLink(uri) 
       .setCustomImage(Uri.parse(AppPrivate.Invitation.TRIP_INVITE_DEEP_LINK_IMAGE)) 
       .setCallToActionText(context.getString(R.string.content_trip_invitation_cta)) 
       .build(); 

Cependant, quand je reçois l'invitation par e-mail sur mon bureau, il va toujours la liste Play Store, peu importe ce que j'ai ajouté au lien profond initial (DFL, AFL). Voici un exemple du lien de la « appel à l'action » bouton de l'e-mail:

https://a3d4u.app.goo.gl/i/225742434763-3bd2c2fa-45f0-4ed8-aca3-37760d27d971

Je n'ai pas encore mis en œuvre les récepteurs dans l'application Android pour écouter les liens entrants, donc je ne peux pas confirmer si ou pas le lien profond se comporte de manière appropriée sur cette plate-forme.

Toutes les recommandations ou suggestions sur ce qui me manque avec le lien vers le bureau sont grandement appréciées.

Merci!

Répondre

1

Vous encapsulez un lien dynamique dans un autre lien dynamique. S'invite génère un lien dynamique, qui n'a pas votre paramètre DFL, donc il redirige vers le magasin.

Vous pouvez essayer de raccourcir le lien dynamique que vous générez et de partager via la boîte de dialogue de partage ordinaire plutôt que d'utiliser les invitations.

+0

Ah, donc si vous utilisez l'approche manuelle pour générer le lien dynamique, alors vous n'avez pas besoin d'utiliser le générateur d'intention AppInviteInvitation? Puis, comme vous l'avez mentionné, vous appelez simplement l'intention de partage régulier pour les applications disponibles sur l'appareil individuel de l'utilisateur? Donc, il pourrait techniquement aller sur les canaux de médias sociaux, email, SMS, etc? Merci pour la clarification - n'a pas vraiment fait ce lien lors de la lecture des spécifications. Cela explique aussi pourquoi l'activité ne répondrait pas à mon hôte - je devais utiliser l'hôte app_code.app.goo.gl plutôt que mon .com. – Kyle

+0

Suivi rapide - si j'élimine le générateur AppInviteInvitation et envoie simplement l'Uri construit à partir de la création manuelle du lien dynamique, j'obtiens une erreur Google 400. Voici le lien qu'il crée (une fois que j'aurai quelque chose qui fonctionne, je le raccourcirai) - https://a3d4u.app.goo.gl/?link=https%253A%252F%252Fwww.mytravelerapp.com&apn=edu.bsu. android.apps.traveler & dfl = https% 3A% 2F% 2Fwww.mytravelerapp.com & amv = 635 – Kyle

+1

Veuillez ajouter & d = 1 au lien pour voir la page de débogage. Ici, https://a3d4u.app.goo.gl/?link=https%253A%252F%252Fwww.mytravelerapp.com&apn=edu.bsu.android.apps.traveler&dfl=https%3A%2F%2Fwww.mytravelerapp.com & amv = 635 & d = 1 vous pouvez voir que quelque chose ne va pas avec le paramètre lien (lien profond). Essayez celui-ci à la place https://a3d4u.app.goo.gl/?link=https%3A//www.mytravelerapp.com&apn=edu.bsu.android.apps.traveler&dfl=https%3A%2F%2Fwww. mytravelerapp.com & amv = 635 –