Outil de jeu d'ouverture de Firebase Deep-link même lorsque l'application est installée

Je développe une application Android.

En cliquant sur un bouton, un lien profond est généré et partagé avec des amis.

  • L'activité a tué / onCreate a appelé après avoir pris la photo par intention
  • Android: faites de la vue en haut de listview faites défiler avec la liste
  • Installer Chrome pour Android dans un émulateur Android
  • Négation en condition lors de l'envoi du message FCM
  • NavigationDrawer utilisant uniquement la bibliothèque de support Android
  • Pourquoi il n'y a pas de "Nexus 5" dans AVD Manager? Quelle option utiliser à la place?
  • Le problème est que, en cliquant sur ce lien profond partagé, Play Store s'ouvre même lorsque l'application est installée.

    J'ai suivi cette documentation.

    Voici l' intent-filter :

      <!-- [START link_intent_filter] --> <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="example.com" android:scheme="http"/> <data android:host="example.com" android:scheme="https"/> </intent-filter> <!-- [END link_intent_filter] --> 

    Voici comment je crée l'url (manuellement):

      Uri BASE_URI = Uri.parse("https://domainname.com/"); packageName = getBaseContext().getPackageName(); APP_URI = BASE_URI.buildUpon().path(requestID.getText().toString().trim()) .appendQueryParameter("query1", query1.getText().toString()) .appendQueryParameter("query2", query2.getText().toString()) .appendQueryParameter("query3", query3.getText().toString()).build(); try { String encodedUri = URLEncoder.encode(APP_URI.toString(), "UTF-8"); deepLink = Uri.parse("https://myappcode.app.goo.gl/?link="+encodedUri+"&apn="+holder.packageName+"&amv="+16+"&ad="+0); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } 

    Voici le lien / url reçu: http://domainname.com/-KcldzAeJHrPS5tnfxTk?query1=query1&query2=query2&query3=query3

    Qu'est-ce qui pourrait être faux ici?

  • Quand le getItem de FragmentPagerAdapter est-il appelé?
  • Comment accélérer le temps de décompte dans Java / Android?
  • Obtenir ClassCastException lorsque vous essayez d'insérer RelativeLayout dianmiquement?
  • Vérifier le compte marchand avec un compte bancaire dans un pays différent
  • Pourquoi utiliser Fragments?
  • Bouton Disable Action Bar dans Android
  • One Solution collect form web for “Outil de jeu d'ouverture de Firebase Deep-link même lorsque l'application est installée”

    Il y a au moins trois choses qui pourraient être fausses:

    La façon dont vous ouvrez l'url: j'ai vu un problème similaire lors de l'écriture de l'URL dans la fenêtre du navigateur sur un appareil Android. Lors de l'ajout du lien à un courrier électronique et en cliquant dessus, l'application a été ouverte. Vous écrivez "cliquez", donc peut-être que ce n'est pas le problème.

    Votre URL et votre application / manifeste ne correspondent pas: Vous n'avez pas ajouté le gestionnaire d'intention approprié pour le protocole ou l'hôte pour corriger l'emplacement dans votre manifeste ou votre URL ne correspond pas à ce que vous avez ajouté. Ou apn donné dans l'url ne correspond pas à votre nom de package d'applications. Selon la question dans l'état actuel, l'hôte ne correspond pas.

    Vous ne partagez pas l'URL de deeplink, mais juste une URL ordinaire: si vous prévoyez l'URL partagée pour ouvrir une application préinstallée, vos amis devront cliquer (sur un email ou similaire) sur l'URL de developpement complet, qui dirige le lien vers Play store (si l'application n'est pas installée) ou ouvre l'application (si elle est correctement implémentée). L'URL normale vient d'être ouverte dans le navigateur. Sur la base de l'état actuel de la question, cela pourrait être le cas.

    Si la réparation ci-dessus ne fonctionne pas: Essayez d'ajouter un lien Android spécifique à votre URL, quelque chose comme ceci:

     https://<myappcode>.app.goo.gl/?link=http://domainname.com&apn=com.doman.app&amv=16&ad=0&al=myscheme://any-string-you-choose 

    Après quoi votre filtre d'intention devrait être quelque chose comme ceci:

      <!-- [START link_intent_filter] --> <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="any-string-you-choose" android:scheme="myscheme"/> </intent-filter> <!-- [END link_intent_filter] --> 

    Je préfère cette façon car il est un peu plus souple par rapport à l'utilisation d'un seul lien. Naturellement, le nom du paquet et d'autres choses doivent être corrects également lors de l'utilisation de cette méthode. Le lien Android est une URL qui ne doit être ouverte que dans l'application Android, un peu mal documentée, vérifiez-la ici (l'exemple). De plus, ma réponse à une autre question donne des exemples sur la façon de l'utiliser.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.