单击 link 时填写表格 - Flutter

Fill a form when clicked on a link - Flutter

在我的 flutter 应用程序中,我希望每当我向任何用户发送 link 时,link 将打开我的应用程序并 填写页面上给出的表格。

例如,如果这是我的应用:

然后我通过电子邮件发送了这个link:https://example.com/fillMyForm?username=johndoe

然后这将打开我的应用程序并填写表格,如下所示:

提前致谢。

您可以为此使用 firebase 动态 links。参考这个 link https://medium.com/better-programming/deep-linking-in-flutter-with-firebase-dynamic-links-8a4b1981e1eb

像这样在 flutter 中检索动态 link 并在 link 进入注册监听器时打开表单屏幕。

class MainWidgetState extends State<MainWidget> {

  @override
  void initState() {
    super.initState();
    this.initDynamicLinks();
  }

  initDynamicLinks(BuildContext context) async {
    await Future.delayed(Duration(seconds: 3));
    var data = await FirebaseDynamicLinks.instance.getInitialLink();
    var deepLink = data?.link;
    final queryParams = deepLink.queryParameters;
    if (queryParams.length > 0) {
      var userName = queryParams['userId'];
      openFormScreen(userName);
    }
    FirebaseDynamicLinks.instance.onLink(onSuccess: (dynamicLink)
    async {
      var deepLink = dynamicLink?.link;
      final queryParams = deepLink.queryParameters;
      if (queryParams.length > 0) {
        var userName = queryParams['userId'];
        openFormScreen(userName);
      }
      debugPrint('DynamicLinks onLink $deepLink');
    }, onError: (e) async {
      debugPrint('DynamicLinks onError $e');
    });
  }

  openFormScreen(String userName){
    Navigator.of(context).pushNamed("routeFormScreen", arguments: {"name": userName});
  }
}