2015-10-02 4 views
13

Egal was passiert, wenn ich auf einen Link mit branch.io erstellt klicken, wird der Benutzer auf Google genommen Spielen: - ((Branch.io Deeplink in Android öffnet Play Store sogar egal, was

Das ist das ist relevante Aktivität im Manifest:

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

Dies ist branch.io Armaturenbrett:

enter image description here

Antwort

7

Vom Deferred Deep Linking SDK for Android README:

Chrome scheint mich ständig zu Google Play zu bringen. Warum?

Chrome ist sehr wählerisch über das Öffnen der App direkt. Chrome verwendet das Intent-System, um zu versuchen, die App zu öffnen, und schlägt viel zu einfach in den Play Store zurück. Hier sind 3 Dinge zu überprüfen:

  1. Stellen Sie sicher, der Paketname für den Test Build entspricht das Paket in den Zweig Einstellungen registriert und stimmt mit dem Paket in Google Spiel.

  2. Stellen Sie sicher, dass das URI-Schema des Test Build mit den Branch-Einstellungen übereinstimmt.

  3. Stellen Sie sicher, dass Sie den richtigen Host 'öffnen' im Manifest hinzugefügt haben - here

Ich sehe, dass Sie diese app als Beispiel. Bitte überprüfen Sie, ob der Paketname Ihrer Anwendung com.foo.inappbilling lautet, andernfalls wird der Link Branch.io Ihre App nicht öffnen und immer den Google Play Store öffnen.

Ich konnte Ihr Problem reproduzieren und ich löste, indem Sie den richtigen Paketnamen festlegen. Wenn Sie Gradle verwenden Sie können es direkt von 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

Eine Sache hinzufügen, „Support Routing bestehenden auf dieser URI-Schema basiert ausgewählt“. Wenn das der Fall ist, wird foo: // + öffnen, was für den Schlüssel $ deeplink_path spezifiziert ist. Also, $ Deeplink-Pfad wird eine Leiste benötigen! –

+0

@Mattia Maestrini: Müssen wir 'Host' auf' open' setzen, oder können wir ein beliebiges Schlüsselwort verwenden? – anticafe

1

haben Sie überprüft (immer versuchen App zu öffnen) in dem Armaturenbrett innerhalb Link Einstellungen über dem Schema Definition? Stellen Sie außerdem sicher, dass das im Manifest festgelegte Schema ohne ": //" lautet. Weitere Informationen finden Sie unter @inverce-Antwort.

1

Im Armaturenbrett Einstellung/link/

wählen Sie benutzerdefinierte URL Einstellung und Ihr Paket Name Ihrer Anwendung eingeben

+0

Das funktioniert einfach nicht, und das zu Recht, da der Paketname keine URL ist. –

+0

ohne Paketname ist es nicht möglich, App von URL zu öffnen und das funktioniert perfekt in meiner App –

Verwandte Themen