2015-10-02 4 views
13

Nie ważne co, po kliknięciu na link stworzony z branch.io, użytkownik zostaje zabrany do Google Play: - ((Branch.io Deeplink w Android otwiera Sklep Play nawet bez względu na to co

To odpowiednią działalność w manifeście:

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

to jest deska rozdzielcza branch.io:

enter image description here

Odpowiedz

7

z Deferred Deep Linking SDK for Android README:

Chrome wydaje się przenosić mnie do Google Play przez cały czas. Czemu?

Chrome jest bardzo wrażliwy na otwieranie aplikacji bezpośrednio. Chrome wykorzystuje system intencyjny, aby spróbować otworzyć aplikację i zbyt łatwo przywraca sklepowi Play Store . Oto 3 rzeczy do sprawdzenia:

  1. upewnić się, że nazwa pakietu dla kompilacji testowej dopasowuje pakiet zarejestrowany w ustawieniach gałęzi i dopasowuje pakiet w Google gry.

  2. Upewnij się, że schemat identyfikatora URI budowli testowej jest zgodny z ustawieniami gałęzi.

  3. Sprawdź, czy dodaliśmy właściwego gospodarza „otwarty” w manifeście - patrz here

widzę, że używasz tej app jako przykład. Sprawdź, czy nazwa pakietu aplikacji to com.foo.inappbilling, w przeciwnym razie link Branch.io nie otworzy Twojej aplikacji i zawsze otworzy Sklep Google Play.

Udało mi się odtworzyć Twój problem i rozwiązałem go, ustawiając poprawną nazwę pakietu. Jeśli używasz Gradle można to zrobić bezpośrednio z 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

jedna rzecz dodać, „wspierać istniejące trasy w oparciu o ten schemat URI jest wybrany”. Jeśli tak jest, foo: // otworzy się + cokolwiek jest określone dla klucza $ deeplink_path. Tak więc ścieżka $ deeplink będzie wymagać paska! –

+0

@Mattia Maestrini: Czy musimy ustawić 'host' na' open', czy możemy użyć dowolnego słowa kluczowego? – anticafe

1

masz zaznaczone (zawsze próbuje otworzyć aplikację) w desce rozdzielczej wewnątrz ustawieniach linku powyżej definicji schematu? Upewnij się również, że schemat ustawiony w manifeście jest bez ": //" refer @inverce answer, aby uzyskać więcej informacji.

1

w panelu ustawień/link ustawienie/

wybrać niestandardowy adres URL i wpisz nazwę pakietu aplikacji

+0

To po prostu nie działa i całkiem słusznie, ponieważ nazwa pakietu nie jest adresem URL. –

+0

bez nazwy pakietu nie można otworzyć aplikacji z adresu URL i działa to doskonale w mojej aplikacji –

Powiązane problemy