Как стать автором
Обновить

Комментарии 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." - не совсем так.

На уровне андройда нет механизма обработки ссылок без схемы, так как по сути все описанные кейсы подставляют какую-то схему. Для пользователя кажется, что такой механизм есть, но на деле его нет.

Да. Android не сможет обработать developer.androd.com/about. Здесь под "специальный механизм" подразумевались инструменты, которые мы разобрали (Linkify, HTML...).

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории