Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Привет, да тоже столкнулся с проблемами по Deep Link'ам с разными build variant'ами. Думали сделать через разные файлы graph'ов либо strings для каждого build type'a, но это бы ещё больше проблем создало. Смогли все таки решить, можно сделать такую реализацию:
Обязательно к нашему host'у НЕ должна быть добавлена scheme=app в AndroidManifest далее нам нужно <deepLink ... /> в nav_graph указывать таким образом:
app:uri="https://.*/path"
Очень полезная ссылка на тред в stackoverflow, мне кажется при создании статьи тоже изучали его.
Код в результате:
AndroidManifest.xml
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:host="${host}" />
</intent-filter>nav_graph.xml
<fragment
android:id="@+id/example_fragment"
android:name="com.example.presentation.ui.fragments.ExampleFragment"
tools:layout="@layout/fragment_example">
<deepLink
android:autoVerify="true"
app:uri="https://.*/path/{id}" />
<argument
android:name="id"
android:defaultValue="-1"
app:argType="integer" />
</fragment>А так да, проблем было очень много, спасибо большое за статью ❤️
Недостатки Navigation Component deep linking и как их обойти