在应用程序处于后台时使用uni_link [英] Using uni_links when the app is in the background

查看:12
本文介绍了在应用程序处于后台时使用uni_link的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的应用程序具有以下结构:

- 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中的链接,但如果该应用已在LoginMain页面中打开,则不会再次访问Splash Screen

然后我试着把它放到InheritedWidget中,可惜没有得到任何结果。

所以我的问题是:我应该在哪里以及如何设置uni_links,以便即使应用程序处于打开状态也可以捕获所有传入链接?

或者更好,我可以使用App链接/通用链接的替代方案吗?

推荐答案

虽然这不是最好、最优雅的方式,但我还是绕过了这个问题。

首先,我没有正确使用getLinksStream

而不是

(link) => (link) {...}

(link) {...}

然后,我需要将此订阅放入我的Splash Screen中,并且不处置它,以便它可以监听新事件。

如果有人有更好的解决方案,请随时添加

这篇关于在应用程序处于后台时使用uni_link的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆