繁体   English   中英

在 flutter 应用程序中为 android 和 ios 应用深度链接

[英]Apply Deep linking in flutter app for android and ios

在 flutter 应用程序中应用深度链接以在另一个应用程序或同一个应用程序中打开特定页面 ?

我认为这与普通的 android 应用程序相同。 深度链接是配置而不是代码。 你需要在你的 android manifest 中写一些东西。 查看 firebase 手册了解深度链接:

Firebase 深度链接手册

您可以使用 firebase 动态链接在 flutter 中进行深度链接。 请参阅此链接以获取完整的实施步骤并创建并接收链接https://medium.com/better-programming/deep-linking-in-flutter-with-firebase-dynamic-links-8a4b1981e1eb 这是在应用程序内接收链接并打开新屏幕的示例代码。

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'];
      openNewScreen(userName);
    }
    FirebaseDynamicLinks.instance.onLink(onSuccess: (dynamicLink)
    async {
      var deepLink = dynamicLink?.link;
      final queryParams = deepLink.queryParameters;
      if (queryParams.length > 0) {
        var userName = queryParams['userId'];
        openNewScreen(userName);
      }
      debugPrint('DynamicLinks onLink $deepLink');
    }, onError: (e) async {
      debugPrint('DynamicLinks onError $e');
    });
  }

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM