簡體   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