Мобильные приложения, в том числе написанные на Flutter, дают возможность настроить обработку различных ссылок.
🔗Глубокие ссылки (deeplinks) — это ссылки с кастомной схемой, которые позволяют не только открыть именно ваше приложение на устройстве, но и осуществить переход на вложенные маршруты внутри него. Например, ссылка
app://product/id123 позволит открыть ваше приложение сразу на странице продукта с идентификатором id123. 🔗Universal links — это универсальные ссылки iOS приложений, которые имеют формат стандартной веб-ссылки, например,
https://www.example.com. В случае, если приложение установлено, ссылки открывают его. Если нет — в браузере открывается веб-сайт, который связан с этой же ссылкой. 🔗App Links — это ссылки для Android, которые работают по принципу, идентичному Universial links на iOS.
После настройки ссылок на проектах часто возникает вопрос — как же выполнить их обработку внутри приложения? Здесь на помощь нам придет библиотека app_links.
Для получения ссылок используется экземпляр класса AppLinks:
final _instance = AppLinks();
С помощью этого объекта можно отследить, с какой конкретной ссылки запустили приложение.
Future<void> handleInitialLink() async {
final initialLink = await _instance.getInitialLink();
// обработка начальной ссылки
}
Кроме этого, в момент работы приложения в него из платформы также могут поступать различные ссылки. В таком случае плагин дает возможность получать эти ссылки потоком строк или объектов Uri.
final uriSubscription = _instance.uriLinkStream.listen((uri) {
// обработка ссылки в Uri формате
});
final srtringLinksSubscription = _instance.stringLinkStream.listen((stringLink) {
// обработка ссылки в String формате
});
У библиотеки хорошая репутация: почти 1 тысяча лайков и более 800 тысяч скачиваний.
Делитесь в комментариях своим опытом работы с app_links и с ссылками приложения в целом.
