8

J'utilise l'indexation d'applications dans mon application, mais parfois, elle ne reçoit pas correctement les intentions de Chrome.Lien profond Android ne fonctionnant que sur certains sites Web

Si j'ouvre le lien depuis mon site de production, il est ouvert par chrome. J'ai donc créé un site de test qui a le même code. Cependant, dans ce cas, mon application ouvre correctement le lien profond.

Je ne trouve aucune explication car il utilise le même code sur le web (mais dans différents sites) et la même application Android.

Ceci est mon intention filtre:

 <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:scheme="https" android:host="soriabus-web.appspot.com" android:pathPrefix="/" /> 
     </intent-filter> 

Voici le code html dans mon bouton:

<a href="https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados/true" 
"type="button" 
role="button" 
class="btn btn-primary"> 
Abrir Soria Bus 
</a> 

Si j'ouvre le lien dans cette adresse (production), il ouvre Play Store (la fin du lien est une redirection vers Google Play):

https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados

Si j'ouvre le lien dans cette autre adresse (test), il ouvre mon application correclty:

https://central-splice-128620.appspot.com/parada/1/plaza-mariano-granados

Je ne comprends pas pourquoi les liens sont traités differenty. Je vous remercie.

EDIT:

Est-ce parce que je suis suivant un lien à l'intérieur du même site?

https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados => https://soriabus-web.appspot.com/parada/1/plaza-mariano-granados/playstore

Répondre

1

Si vous testiez dans le navigateur Android (le navigateur par défaut jusqu'à ce que Android 4.2), cela fonctionne. Donc, il semble que ce soit une fonctionnalité du navigateur Android Chrome. visé d'ici: https://developer.chrome.com/multidevice/android/intents

 
And Chrome doesn’t launch an external app for a given Intent URI in the following cases. 

When the Intent URI is redirected from a typed in URL. 
When the Intent URI is initiated without user gesture. 

Dans votre cas, il est le même que celui d'une URL typée.

Vous devriez essayer la syntaxe intent:// de la page ci-dessus qui est recommandé par Google, si vous voulez l'ouvrir à partir de chrome.

+0

Chrome n'est-il pas le navigateur par défaut Android? –

+0

Ou je pourrais poser ma question comme "pourquoi mon cas est le même que de taper une url si mon action appuie sur un bouton?" –

+0

@JavierDelgado Désolé, il a appelé le navigateur Android, le navigateur par défaut avant Android 4.2, j'ai modifié cette partie dans ma réponse. pourriez-vous s'il vous plait essayer le mode 'd'intention 'dont j'ai parlé? – xfdai