6

Sono bloccato con il seguente scenario. Ho definito i seguenti Deep Link filtri intenti nel comportamento atteso AndroidManifest.xmlAndroid Deeplinking non funziona con più schemi

è quando ho trovato un URL di formato http://​www.domain.com/a/blabla o quando v'è collegamento in SMS/E-mail del formato domain/xyz sistema dovrebbe innescare la mia attività.

Caso # 1: Lavorare bene

<activity 
     android:name=".MYActivity"> 
     <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="xyz" 
       android:scheme="domain" /> 
     </intent-filter> 
    </activity> 

Caso # 2: Lavorare bene

 <activity 
     android:name=".MYActivity"> 
     <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:scheme="http" 
       android:host="www.domain.com" 
       android:pathPrefix="/a" 
      /> 
     </intent-filter> 
    </activity> 

Caso # 3: Non funziona

<activity 
     android:name=".MYActivity"> 
     <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="xyz" 
       android:scheme="domain" /> 
      <data 
       android:scheme="http" 
       android:host="www.domain.com" 
       android:pathPrefix="/a" 
      /> 
     </intent-filter> 
    </activity> 

qualche suggerimento/punti/help è molto apprezzato

+0

TL; DR: '' host' e pathPrefix' * deve * essere lo stesso in una 'intent-filter'. È possibile duplicare gli elementi 'dati' in un' intent-filter' con diversi 'scheme'. Esempio: la versione http e https dello stesso host/pathPrefix può trovarsi in un filtro intent. –

risposta

10

Ho inserito entrambi i deeplink in due diversi filtri intent e ha funzionato !!!.

+0

puoi pubblicare il tuo codice di lavoro? Ho problemi con due diversi filtri di intent –

+0

@Renges qual è l'errore che stai vedendo? Qual è il problema? – Blanc

+0

Funziona con http e schema personalizzato quando eseguo il test con il terminale ma quando il mio amico inserisce il sito Web e passa lo schema URL personalizzato, non apre la mia app –

5

Vedere la documentazione di <data>: si afferma che:

Tutti gli <data> elementi contenuti all'interno dello stesso elemento <intent-filter> contribuiscono allo stesso filtro.

Quindi

<intent-filter> 
    <data 
     android:host="xyz" 
     android:scheme="domain" /> 
    <data 
     android:scheme="http" 
     android:host="www.domain.com" 
     android:pathPrefix="/a" /> 
<intent-filter> 

viene interpretato come equivalente (non reale codice)

<intent-filter> 
    <data 
     android:host="xyz" 
     android:scheme="domain" 
     android:scheme="http" 
     android:host="www.domain.com" 
     android:pathPrefix="/a" /> 
<intent-filter> 

che ha chiaramente alcune contraddizioni, ad esempio host è xyz VS www.domain.com.

+0

Ok. Significa che non posso avere host diversi nello stesso filtro intent. Proverò a tenerli in diversi filtri di intent. Apprezzo i tuoi commenti – Blanc

+0

Consiglio vivamente di leggere quei documenti di '' e ''. – TWiStErRob

+0

In quale versione di schema duplicato di Android è supportato, non penso che non sia possibile come per XSD ... – whoami