diff --git a/packages/firebase_dynamic_links/firebase_dynamic_links/ios/Classes/FLTFirebaseDynamicLinksPlugin.m b/packages/firebase_dynamic_links/firebase_dynamic_links/ios/Classes/FLTFirebaseDynamicLinksPlugin.m index 4b996a441533..07a9a14ad226 100644 --- a/packages/firebase_dynamic_links/firebase_dynamic_links/ios/Classes/FLTFirebaseDynamicLinksPlugin.m +++ b/packages/firebase_dynamic_links/firebase_dynamic_links/ios/Classes/FLTFirebaseDynamicLinksPlugin.m @@ -24,6 +24,7 @@ if (dynamicLink.minimumAppVersion) { iosData[@"minimumVersion"] = dynamicLink.minimumAppVersion; } + dictionary[@"utmParameters"] = dynamicLink.utmParametersDictionary; dictionary[@"ios"] = iosData; return dictionary; } else { diff --git a/packages/firebase_dynamic_links/firebase_dynamic_links_platform_interface/lib/src/method_channel/method_channel_firebase_dynamic_links.dart b/packages/firebase_dynamic_links/firebase_dynamic_links_platform_interface/lib/src/method_channel/method_channel_firebase_dynamic_links.dart index 1ed18a24bbde..7e4f2058f39a 100644 --- a/packages/firebase_dynamic_links/firebase_dynamic_links_platform_interface/lib/src/method_channel/method_channel_firebase_dynamic_links.dart +++ b/packages/firebase_dynamic_links/firebase_dynamic_links_platform_interface/lib/src/method_channel/method_channel_firebase_dynamic_links.dart @@ -104,6 +104,7 @@ class MethodChannelFirebaseDynamicLinks extends FirebaseDynamicLinksPlatform { link: Uri.parse(link), android: androidData, ios: iosData, + utmParameters: linkData['utmParameters'], ); } diff --git a/packages/firebase_dynamic_links/firebase_dynamic_links_platform_interface/lib/src/pending_dynamic_link_data.dart b/packages/firebase_dynamic_links/firebase_dynamic_links_platform_interface/lib/src/pending_dynamic_link_data.dart index 9d4abbddfcde..fd8637a1dbc6 100644 --- a/packages/firebase_dynamic_links/firebase_dynamic_links_platform_interface/lib/src/pending_dynamic_link_data.dart +++ b/packages/firebase_dynamic_links/firebase_dynamic_links_platform_interface/lib/src/pending_dynamic_link_data.dart @@ -7,7 +7,13 @@ import 'pending_dynamic_link_data_ios.dart'; /// Provides data from received dynamic link. class PendingDynamicLinkData { - const PendingDynamicLinkData({required this.link, this.android, this.ios}); + const PendingDynamicLinkData( + {required this.link, + this.android, + this.ios, + this.utmParameters = const {}, + } + ); /// Provides Android specific data from received dynamic link. /// @@ -24,11 +30,15 @@ class PendingDynamicLinkData { /// Deep link parameter of the dynamic link. final Uri link; + /// UTM parameters associated with a dynamic link. + final Map utmParameters; + /// Returns the current instance as a [Map]. Map asMap() => { 'ios': ios?.asMap(), 'android': android?.asMap(), 'link': link.toString(), + 'utmParameters': utmParameters }; @override