2017-03-23 1 views
5

Ich habe mehrere Deeplink-Schemata für verschiedene App-Varianten. Ich habe ein Backend, das ein anderes Schema pro App sendet. Wenn alle auf dem gleichen Gerät installiert sind, können alle den gesendeten Deeplink analysieren. Also wenn alle drei installiert sind und der Deeplink für app2 aufgerufen wird. Alle Apps sind in der Lage, sie zu erfassen, aber nur App2 kann sie in der App richtig verarbeiten und sollte als einzige in der Lage sein, sie zu erfassen.Android Deeplink pro Geschmack

Flavors in meiner .gradle Datei definiert

productFlavors { 
    app1{ 
     applicationId "com.apps.app1" 
    } 
    app2{ 
     applicationId "com.apps.app2" 
    } 
    app3{ 
     applicationId "com.apps.app3" 
    } 
} 

Die Absicht Filter ich die Deep-Links in meinem Manifest zu fangen verwenden.

<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:pathPrefix="/" 
     android:scheme="app1" /> 
    <data 
     android:pathPrefix="/" 
     android:scheme="app2" /> 
    <data 
     android:pathPrefix="/" 
     android:scheme="app3" /> 
</intent-filter> 

Gibt es eine Möglichkeit, einen Deeplink nur durch einen Geschmack abfangen zu können?

+3

Sie können auch eine String-Ressource für 'android: scheme =" @ string/scheme "' bereitstellen und diese für jede Flavor oder ähnliche überschreiben, indem Sie Manifest Merger-Platzhalter wie '$ {scheme}' mit Gradle konfigurieren. –

Antwort

1

Sie müssen jedem Produkt Flavor eine eigene Manifest-Datei zur Verfügung stellen, in der Sie distinct URI-Muster für Deep Links angeben können.

Sie können sich auf und Merge Multiple Manifest Files beziehen für Details darüber, wie dies zu erreichen, und weitere Dinge über App für Produkt Geschmack zu bauen.

Verwandte Themen