8

Używam indeksowania aplikacji w mojej aplikacji, ale czasami nie odbiera ona poprawnie intencji z Chrome.Głębokie łącze dla Androida działa tylko w niektórych witrynach internetowych

Jeśli otworzę link z mojej strony produkcyjnej, otworzy się przez chrome. Dlatego stworzyłem stronę testową, która ma ten sam kod. Jednak w tym przypadku moja aplikacja poprawnie otwiera link precyzyjny.

Nie mogę znaleźć żadnego wyjaśnienia, ponieważ używa tego samego kodu w Internecie (ale w różnych witrynach) i tej samej aplikacji na Androida.

To mój intent-filter:

 <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> 

Jest to kod html w moim przycisku:

<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> 

Gdybym otworzyć link w tym adresem (produkcja), otwiera Sklep Play (koniec link jest przekierowanie do Google Play):

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

Gdybym otworzyć link w tym inny adres (test), otwiera moje app correclty:

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

ja nie rozumiem, dlaczego linki są obsługiwane differenty. Dziękuję Ci.

EDIT:

Czy dlatego, że mam następujący link wewnątrz tym samym miejscu?

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

Odpowiedz

1

Jeśli testowałem go w Android Browser (Domyślna przeglądarka aż do Androida 4.2), to działa. Wygląda więc na to, że jest to funkcja przeglądarki Chrome Chrome. mowa stąd: 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. 

W twoim przypadku, to jest to samo, co url maszynowy.

Powinieneś wypróbować składnię intent:// z powyższej strony, zalecaną przez Google, jeśli chcesz ją otworzyć z Chrome.

+0

Czy przeglądarka Chrome nie jest domyślną przeglądarką Androida? –

+0

Mogę ponownie wpisać moje pytanie jako "dlaczego mój przypadek jest taki sam jak adres URL, jeśli moja czynność polega na naciśnięciu przycisku?" –

+0

@JavierDelgado Przepraszam, nazwałem przeglądarkę Android, domyślną przeglądarkę przed Androidem 4.2, edytowałem tę część w mojej odpowiedzi. czy mógłbyś wypróbować sposób "intencji", o którym wspomniałem? – xfdai