我已经在Flutter应用程序中集成了Firebase动态链接,以打开和导航应用程序用户到应用程序中的特定屏幕。
首先,我在pubspec.yaml文件中添加了以下插件:
firebase_dynamic_links: ^5.0.5
然后,我创建了一个单独的类来处理相关的东西,如下所示:
class DynamicLinkService {
late BuildContext context;
FirebaseDynamicLinks dynamicLinks = FirebaseDynamicLinks.instance;
Future<void> initDynamicLinks(BuildContext context) async {
this.context = context;
dynamicLinks.onLink.listen((dynamicLinkData) {
var dynamicLink=dynamicLinkData.link.toString();
if (dynamicLink.isNotEmpty &&
dynamicLink.startsWith(ApiConstants.baseUrl) &&
dynamicLink.contains("?")) {
//Getting data here and navigating...
...
...
...
}
}).onError((error) {
print("This is error >>> "+error.message);
});
}
}
现在,我在home_screen中初始化深度链接,如下所示:
final DynamicLinkService _dynamicLinkService = DynamicLinkService();
然后在initState()
中调用以下方法
@override
void initState() {
SchedulerBinding.instance.addPostFrameCallback((_) async {
await _dynamicLinkService.initDynamicLinks(context);
});
}
- 这就像一个魅力!*当我的应用程序是在最近的模式或在后台模式。
但问题是当应用程序关闭/终止时,单击动态链接仅打开应用程序,但无法导航。
可能是什么问题?提前感谢。
1条答案
按热度按时间eoxn13cs1#
让我回答我自己的问题,它可能对某人有用!
因此,在上面的代码中,我忘记添加代码来处理动态链接,而应用程序处于关闭/杀死模式。
我们需要单独添加以下代码:
因此,最终代码如下所示:
它现在就像一个护身符一样起作用了!就这样。