Использование 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.

Другие вопросы по тегам