在应用程序处于后台时使用uni_link [英] Using uni_links when the app is in the background
本文介绍了在应用程序处于后台时使用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
中的链接,但如果该应用已在Login
或Main
页面中打开,则不会再次访问Splash Screen
。
然后我试着把它放到InheritedWidget
中,可惜没有得到任何结果。
所以我的问题是:我应该在哪里以及如何设置uni_links
,以便即使应用程序处于打开状态也可以捕获所有传入链接?
或者更好,我可以使用App链接/通用链接的替代方案吗?
推荐答案
虽然这不是最好、最优雅的方式,但我还是绕过了这个问题。
首先,我没有正确使用getLinksStream
而不是
(link) => (link) {...}
是
(link) {...}
然后,我需要将此订阅放入我的Splash Screen
中,并且不处置它,以便它可以监听新事件。
如果有人有更好的解决方案,请随时添加
这篇关于在应用程序处于后台时使用uni_link的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文