Fad*_*del 5 flutter firebase-dynamic-links gorouter
我已经firebase dynamic links在我的应用程序中集成并工作正常,后来我改为使用go_router,现在我不知道应该做什么才能让它工作或如何处理它。
我想象的方式是 FB 动态链接将与 中的页面path相同,并且 go_router 将自动转到该页面,但我不认为这就是它的工作原理,而且我找不到任何资源为了这。pathGoRouter routesredirect
那么问题是如何使用Firebase DynamicLinkswith go_router?
我就是这样做的,看起来工作正常:)
当应用程序处于终止模式时:
未来 main() 异步 { ...
// Closed state: getInitialLink is Used
final PendingDynamicLinkData? initialLink =
await FirebaseDynamicLinks.instance.getInitialLink();
Run Code Online (Sandbox Code Playgroud)
...
然后通过 runApp(MtApp(initialRoute: initialLink)) 将其传递给 GoRouter.initialLocation 字段或 GoRouter.redirect 函数,具体取决于您如何使用它。
用您创建的 statefulWidget 包装您的顶部小部件,如下所示:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
希望有帮助!
| 归档时间: |
|
| 查看次数: |
2089 次 |
| 最近记录: |