Комментарии 6
Я из описания проблемы №7 не понял, что предлагается - в манифесте все нужные path хардкодить или в 5 части решение обсудить?
В 7 истории предлагается не обрабатывать ссылки вида https://developer.android.com. Иногда их очень хочется обработать (выглядит как логичный URL для лендинга). Но как только мы убираем android:path* из <data />, то начинаются проблемы.
Но не все так плохо. Могу предложить два простых в реализации варианта:
android:path="" работает. Но для нее отображается ошибка AppLinkUrlError в студии. Я это сейчас на Pixel (Emulated) API 29 протестировал. Насчет других не могу сказать.
android:path="/" работает для https://developer.android.com/
Спасибо за статьи, очень интересно, но не понял проблему №6. В доке написано, собственно вы это и описали, что элементы блоков data, объявленные в одном intent-filter комбинируются (полностью согласен с этим). Поэтому правильно объявлять отдельные intent-filter, для уникальных ссылок, но вы почему-то наоборот объявили 2 хоста в одном фильтре, при этом описав, что так делать не нужно... Может я не так вас понял?
P.s. такой вариант как у вас (у двумя хостами в одном фильре) норм работает, если они абсолютно идентичны по другим параметрам (как path)
Вы все верно поняли. В случае, если ссылки отличаются одним лишь host (справедливо и для scheme, port), то можно использовать этот трюк с комбинациями. Что нам это даст? Если поменяется какой-нибудь другой атрибут (path, например), то нам не придется его менять в двух отдельных intent-filter. Очень удобно. Если же ссылки отличаются значительно, то я бы использовал предложенный вами вариант: два отдельных intent-filter под каждую уникальную ссылку.
На счет тезиса "Существует специальный механизм обработки ссылок без scheme." - не совсем так.
На уровне андройда нет механизма обработки ссылок без схемы, так как по сути все описанные кейсы подставляют какую-то схему. Для пользователя кажется, что такой механизм есть, но на деле его нет.
Deep Dive Into Deep Link. Часть 4. Проблемы: ссылки без схемы, второй хост, перехваты всего