Pull to refresh
1
0
Валерий Петров @valeryvpetrov

Android разработчик

Send message

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

Вы все верно поняли. В случае, если ссылки отличаются одним лишь host (справедливо и для scheme, port), то можно использовать этот трюк с комбинациями. Что нам это даст? Если поменяется какой-нибудь другой атрибут (path, например), то нам не придется его менять в двух отдельных intent-filter. Очень удобно. Если же ссылки отличаются значительно, то я бы использовал предложенный вами вариант: два отдельных intent-filter под каждую уникальную ссылку.

В 7 истории предлагается не обрабатывать ссылки вида https://developer.android.com. Иногда их очень хочется обработать (выглядит как логичный URL для лендинга). Но как только мы убираем android:path* из <data />, то начинаются проблемы.

Но не все так плохо. Могу предложить два простых в реализации варианта:

  • android:path="" работает. Но для нее отображается ошибка AppLinkUrlError в студии. Я это сейчас на Pixel (Emulated) API 29 протестировал. Насчет других не могу сказать.

  • android:path="/" работает для https://developer.android.com/

Firebase Dynamic Links в нашем приложении нет. Если нужно генерировать динамические ссылки, а Google-инструменты не устраивают, то можно посмотреть на AppsFlyer.

Трюк с GET запросом и парсингом ответа интересный, но, как вы правильно подметили, небезопасный. Более того, я думаю, что он не безопасен даже для устройств с Google Services (кто знает, захочет ли Google слегка изменить тело ответа:)).

Можно поступить проще:

и дальше обрабатывать их соответствующими SDK.

kosikov2006. Согласен, это два не совершенно одинаковых продукта. Совместимость PG-R8 распространяется на уровне поддержки файлов с правилами, но не абсолютно всех правил и уж тем более их реализации (вспомните хотя бы сравнение оптимизаций (520 к 6)).
  • Если вас не устраивает R8, но пользоваться новыми версиями AGP все же хочется, то обратите внимание на инструкции:
    android.enableR8=false
    android.enableR8.libraries=false
  • Если хотите совладать с R8, то попробуйте проанализировать содержимое папки app/build/outputs/mapping/(build)/, а именно файлов: configuration.txt, mapping.txt, resources.txt, seeds.txt, usage.txt. Там вы найдете артефакты PG/R8, по которым можно выяснить, как прошла оптимизация.

Уверен, у вас всё получится :)

Information

Rating
Does not participate
Location
Казань, Татарстан, Россия
Date of birth
Registered
Activity

Specialization

Mobile Application Developer