Mam wiele schematów deeplink dla różnych smaków aplikacji. Mam backend, który wysyła inny schemat na aplikację. Jeśli wszystkie są zainstalowane na tym samym urządzeniu, wszystkie będą w stanie przeanalizować wysłany link deeplink. Tak więc, gdy wszystkie trzy są zainstalowane i wywoływany jest deeplink dla app2. Wszystkie aplikacje są w stanie go przechwycić, ale tylko aplikacja 2 może poprawnie przetworzyć go w aplikacji i powinna być jedyną, która może go złapać.Głębokie łącze Android na jeden smak
Flavors zdefiniowane w moim .gradle pliku
productFlavors {
app1{
applicationId "com.apps.app1"
}
app2{
applicationId "com.apps.app2"
}
app3{
applicationId "com.apps.app3"
}
}
Intencją filtr używam do połowu deeplinks w moim manifestu.
<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>
Czy istnieje sposób, aby Deeplink tylko złapać-stanie za jednym smaku?
Można również podać zasób ciągów dla 'android: scheme =" @ string/scheme "' i nadpisać go dla każdego smaku, lub podobnie, używając manifestów zastępczych takich jak '$ {schemat}' konfigurowalnych z gradle. –