2016-10-11 5 views
1

Ich versuche, Branch.io Deep Linking zu meiner Anwendung hinzuzufügen. Der Link, den ich in der Anwendung erzeuge, leitet auf die Website um, anstatt die App zu starten. Ich habe bemerkt, dass wenn ich die App danach manuell öffne, navigiere ich zu der Aktivität, die ich über Deep Link öffnen möchte. Ich habe Branch.io über Fabric kit hinzugefügt und Schritt für Schritt Tutorial in Fabric über Deep Linking Routing gefolgt. Meine App ist noch nicht im Google Play Store.Branch Deep Link nicht geöffnet Anwendung

Das ist meine Konfiguration auf der Website (Ich habe auch die Option: Always try to open app und Test Modus oben auf dem Armaturenbrett). Links, die ich sollte auch sein Test bin zu erzeugen, weil ich test key in BranchSDK: Antwort/Anfrage

http://imgur.com/a/mgLgu

AndroidManifest.xml

<application 
    android:name=".app.MainApplication" 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:largeHeap="true" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 

    <meta-data 
     android:name="io.branch.sdk.TestMode" 
     android:value="true" /> 
    <meta-data 
     android:name="io.branch.sdk.BranchKey" 
     android:value="key_live_xxx" /> 
    <meta-data 
     android:name="io.branch.sdk.BranchKey.test" 
     android:value="key_test_xxx" /> 

    <activity 
     android:name=".ui.main.MainActivity" 
     android:label="@string/app_name" 
     android:launchMode="singleTask" 
     android:screenOrientation="portrait"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

     <intent-filter> 
      <data 
       android:host="open" 
       android:scheme="example" /> 
      <action android:name="android.intent.action.VIEW" /> 

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

Build.gradle

//... 
applicationId "com.example" 
//... 
compile('io.branch.sdk.android:library:[email protected]') { 
    transitive = true; 
} 

Hauptanwendung

sehen
@Override 
public void onCreate(){ 
    super.onCreate(); 
    Fabric.with(this); 
    Branch.getAutoInstance(this); 
} 

Ich kann mehr Code-Snippet bei Bedarf hinzufügen.

Antwort

2

Alex von Branch.io hier:

Da die App auf die richtige Aktivität navigiert, wenn Sie es manuell starten, nachdem Sie einen Link zu klicken, bedeutet dies, dass meisten Ihrer Konfiguration korrekt ist. Der einzige Teil, der scheinbar fehlt, ist der Code, der dazu führt, dass Ihre App tatsächlich gestartet wird.

Auf Android verwendet Branch dafür Ihr URI-Schema. Das ist dieser Abschnitt des Codes:

<intent-filter> 
    <data 
     android:host="open" 
     android:scheme="example" /> 
    <action android:name="android.intent.action.VIEW" /> 

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

Sie müssen den example Wert im android:scheme="example" Stück dieses mit einer anderen, benutzerdefinierten Zeichenfolge ersetzen. Stellen Sie dann sicher, dass Sie die gleiche Zeichenfolge (plus ://) im Abschnitt Link Settings des Branch-Dashboards haben.

Das sollte genug sein, um Sie hier zum Laufen zu bringen. Vielleicht möchten Sie auch unsere full developer documentation überprüfen. Die Fabric-Guides sind ein guter Einstieg, aber sie decken nur einen kleinen Teil der Funktionalität von Branch ab!

+1

Ich habe 'https' im generierten Link zu' http' geändert und es hat angefangen zu arbeiten. – JakeT

+0

Guter Punkt. Ich wusste nicht, was ich im Feld "Schema" schreiben sollte. Ich schlage vor, dass Sie das Beispielbeispiel in der Dokumentation entfernen und eine klarere Zeichenfolge wie "http: // Ihr.Beispiel.Schema/für.Verbindungen" einfügen, da die Leute verwirrt werden und nicht wissen, was sie dort schreiben soll. Vielen Dank! – voghDev