Использование uni_links, когда приложение находится в фоновом режиме
Моя заявка имеет следующую структуру:
- InheritedWidget for dependencies
--> Splash Screen Page
--> Login Pages
--> Main Pages
Когда приложение запускается в первый раз, я могу использовать var link = await getInitialLink();
чтобы получить значение для ссылки, которая открыла приложение.
Однако я не могу получить тот же результат, если я открою приложение в фоновом режиме.
Я пытался использовать
getLinksStream().listen((link) => (link) {
try {
var _latestUri;
if (link != null) _latestUri = Uri.parse(link);
print("=== Formated successfully a link!");
} on FormatException {
print("--- A link got here but was invalid");
}
});
Для получения ссылки в Splash Screen
, но если приложение уже открыто в Login
или же Main
страниц, он не пройдет через Splash Screen
снова.
Затем я попытался положить его в InheritedWidget
но, увы, никакого результата не получилось.
Итак, мой вопрос: где и как мне установить uni_links
чтобы я мог перехватить все входящие ссылки, даже если приложение открыто?
Или лучше, есть ли альтернатива для ссылок приложений / универсальных ссылок, которые я могу использовать?
1 ответ
Хотя это не самый лучший и самый элегантный способ, я справился с этим.
Во-первых, я не использовал getLinksStream
правильно
Вместо
(link) => (link) {...}
Это
(link) {...}
Затем мне нужно поставить эту подписку в моем Splash Screen
и не распоряжайтесь им, чтобы он мог слушать новые события.
Если у кого-то есть лучшее решение, пожалуйста, добавьте его бесплатно
В этой ситуации вам необходимо использовать как getInitialUri(), так и getUriLinksStream(). Если приложение запускается напрямую, вы получите URI из getInitialUri, если приложение, уже работающее в фоновом режиме, вы получите URI из getUriLinksStream.