Уникальная и всеобъемлющая глубокая ссылка
У меня достаточно простой вопрос, который я не могу найти решение. У меня есть приложение для Android с несколькими действиями. Я хочу сформировать конкретные глубокие ссылки на конкретные виды деятельности, а также направить все остальные глубокие ссылки на действия типа "универсальный".
Это мой манифест:
<activity
android:name=".views.activity1">
<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:scheme="domain"
android:host="specificPlace" />
</intent-filter>
</activity>
<activity
android:name=".views.activity2">
<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:scheme="domain"
android:host="*" />
</intent-filter>
</activity>
Итак, я хочу следующее:
domain://specificPlace
-> глубокие ссылки на деятельность1.
domain://
-> глубокие ссылки на активность2
domain://random
-> глубокие ссылки на активность2
domain://somewhereElse
-> глубокие ссылки на активность2
Прямо сейчас домен:// что-то разрешается в активность2.
Любая помощь приветствуется, спасибо заранее!
1 ответ
<intent-filter>
элемент поддерживает целое число priority
атрибут По умолчанию это имеет значение 0
Таким образом, вы можете установить отрицательный приоритет фильтра "catch-all", чтобы убедиться, что он работает после всех остальных:
<intent-filter android:priority="-1">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:scheme="domain"
android:host="*" />
</intent-filter>
Я не пробовал это сам, но похоже, что это должно работать. Часть, в которой я не уверен, заключается в том, priority
Атрибут обрабатывает отрицательные значения. Если этого не произойдет, вы можете вместо этого поставить положительный приоритет на все фильтры "не все":
<intent-filter android:priority="1">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:scheme="domain"
android:host="specificPlace" />
</intent-filter>