2015-10-02 14 views
13

Non importa cosa, quando si fa clic su un link creato con branch.io, l'utente è portato a Google Play: - ((Branch.io deeplink in Android apre Play Store anche non importa quale

Questa è la attività pertinenti nel manifesto:

<activity 
     android:name=".activities.DetailActivity" 
     android:configChanges="keyboard|screenSize|orientation" 
     android:screenOrientation="portrait"> 
     <intent-filter> 
      <data 
       android:host="open" 
       android:scheme="foo" /> 
      <action android:name="android.intent.action.VIEW" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
     </intent-filter> 
    </activity> 

Questo è il cruscotto branch.io:

enter image description here

risposta

7

Dal Deferred Deep Linking SDK for Android README:

Chrome sembra portarmi su Google Play tutto il tempo. Perché?

Chrome è molto esigente nell'aprire direttamente l'app. Chrome utilizza il sistema intent per tentare di aprire l'app e restituisce il backup allo al Play Store troppo facilmente. Qui ci sono 3 cose da verificare:

  1. assicurarsi che il nome del pacchetto per la compilazione di prova corrisponde il pacchetto registrato nelle impostazioni Branch e corrisponde al pacchetto in Google gioco.

  2. Assicurarsi che lo schema URI della generazione di prova corrisponda alle impostazioni di Branch.

  3. Verificare che hai aggiunto il corretto host 'aprire' nel manifesto - si veda here

vedo che si utilizza questo app come esempio. Verifica che il nome del pacchetto dell'applicazione sia com.foo.inappbilling, altrimenti il ​​collegamento Branch.io non aprirà la tua app e aprirà sempre Google Play Store.

Sono stato in grado di riprodurre il problema e ho risolto impostando il nome del pacchetto corretto. Se si utilizza Gradle è possibile farlo direttamente dal app/build.gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.1" 

    defaultConfig { 
     applicationId "com.foo.inappbilling" 
     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    ... 
+0

Una cosa da aggiungere, "Supporto di routing esistente sulla base di questo schema URI è selezionato". Se questo è il caso, foo: // sta per aprire + qualsiasi cosa sia specificata per la chiave $ deeplink_path. Quindi, il percorso $ deeplink avrà bisogno di una barra! –

+0

@Mattia Maestrini: dobbiamo impostare 'host' su' open', o possiamo usare qualsiasi parola chiave? – anticafe

1

Hai controllato (sempre tenta di aprire app) nella tua bacheca all'interno delle impostazioni di collegamento di cui sopra la definizione schema? Assicurati inoltre che lo schema che hai impostato nel manifest sia ": //" fai riferimento a @inverce answer per ulteriori descrizioni.

1

Nel cruscotto impostazione/regolazione/

selezionare URL personalizzato link ed inserire il nome del pacchetto dell'applicazione

+0

Questo non funziona, e giustamente, poiché il nome del pacchetto non è un URL. –

+0

senza nome pacchetto non è possibile aprire l'app da url e questo funziona perfettamente nella mia app –