Что такое Deeplink

Ответ

Deeplink — это специальная ссылка, которая ведет не просто на приложение, а на конкретный экран или контент внутри него. В Flutter для работы с deeplinks используется пакет uni_links или нативный подход через Intent (Android) и Universal Links (iOS).

Пример обработки deeplink в Flutter:

// Инициализация в main()
String? initialLink = await getInitialLink();  
if (initialLink != null) handleDeepLink(initialLink);  

// Подписка на изменения ссылки  
linkStream.listen((String? link) {  
  if (link != null) handleDeepLink(link);  
});  

void handleDeepLink(String link) {  
  if (link.contains('/product/')) {  
    Navigator.push(context, ProductPage(id: extractId(link)));  
  }  
}  

Нюансы:

  • На Android требуется настройка AndroidManifest.xml (intent-filter).
  • На iOS — ассоциация домена (Universal Links) или схема URL.
  • Проверяйте ссылки на безопасность (например, чтобы избежать XSS).

Ответ 18+ 🔞

А, диплинки! Ну это ж классика, ёпта. Представь: тебе в мессенджер кидают ссылку, ты тыкаешь — и тебя не просто в приложение швыряет, а прямиком на нужный товар или пост. Магия, блядь! В Flutter за эту пляску с бубном отвечают либо пакет uni_links, либо можно в натив лезть, через Intent на андроиде и Universal Links на айосе.

Вот смотри, как это обычно выглядит, чтоб ты не бздел:

// Поднимаем это дело в main(), при старте
String? initialLink = await getInitialLink();  
if (initialLink != null) handleDeepLink(initialLink);  

// А это чтобы ловить ссылки, когда приложение уже работает
linkStream.listen((String? link) {  
  if (link != null) handleDeepLink(link);  
});  

// И сама логика разбора, тут уже твоя фантазия
void handleDeepLink(String link) {  
  if (link.contains('/product/')) {  
    Navigator.push(context, ProductPage(id: extractId(link)));  
  }  
}

Но тут, чувак, подводных камней — овердохуища:

  • На Android тебе придётся лезть в AndroidManifest.xml и колдовать с intent-filter. Без этого твой андроид на ссылку посмотрит как баран на новые ворота.
  • На iOS история отдельная, ядрёна вошь. Там надо или домен привязать (Universal Links — это круто, но морока), или схему URL прописать. Без настройки — хуй с горы, ничего не полетит.
  • И главное, безопасность, блядь! Не доверяй ссылкам слепо. Проверяй, откуда они пришли, что внутри. А то какой-нибудь пидарас шерстяной подсунет тебе скрипт, и будет вам хиросима. Всегда санитайз и валидируй, что в эту ссылку завернули, прежде чем куда-то по ней прыгать.

В общем, штука мощная, но требует прямых рук и внимания. Сделаешь — пользователи будут счастливы, а приложение — как хитрая жопа, везде проникнет.