[英]How to use Flutter Firebase dynamic links with go_router
我在我的应用程序中集成了firebase
dynamic links
并且工作正常,后来我改为使用go_router
,现在我不知道我应该怎么做才能让它工作或如何处理它。
我想象的方式是 FB 动态链接path
将与GoRouter
routes
中页面的path
相同,并且 go_router 将自动redirect
到页面但我不认为它是这样工作的,我可以找不到任何资源。
所以问题是如何将Firebase DynamicLinks
与go_router
一起使用?
我就是这样做的,看起来工作正常:)
当应用程序处于终止模式时:
未来的 main() 异步 {...
// Closed state: getInitialLink is Used final PendingDynamicLinkData? initialLink = await FirebaseDynamicLinks.instance.getInitialLink();
...
然后通过 runApp(MtApp(initialRoute: initialLink)) 将其传递给 GoRouter.initialLocation 字段或 GoRouter.redirect function,具体取决于您如何使用它。
用您创建的 statefulWidget 包装您的顶部小部件,例如:
class AHDynamicLinksManager 扩展
StatefulWidget {
final Widget child;
const AHDynamicLinksManager({required this.child, Key? key})
: super(key: key);
@override
State<AHDynamicLinksManager> createState() => _AHDynamicLinksManagerState();
}
class _AHDynamicLinksManagerState extends State<AHDynamicLinksManager> {
@override
void initState() {
super.initState();
FirebaseDynamicLinks.instance.onLink.listen((dynamicLinkData) {
String goingTo = dynamicLinkData.link.path;
GoRouter.of(context).go(goingTo);
}).onError((error) {
GoRouter.of(context).go("/errorpage/$error");
});
}
@override
Widget build(BuildContext context) {
return widget.child;
}
}
希望它有所帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.