You create a Dynamic Link either by using the Firebase console, using a REST API, iOS or Android Builder API, Flutter API, or by forming a URL by adding Dynamic Link parameters to a URI prefix specific to your app. These parameters specify the links you want to open, depending on the user's platform and whether your app is installed.
Below are instructions to create Dynamic Links using Flutter with the Firebase Dynamic Links API. This API accepts either a long Dynamic Link or an object containing Dynamic Link parameters, and returns a URL like the following example:
https://example.page.link/WXYZ
You can create a Dynamic Link programmatically by setting the following parameters and using the DynamicLinkParameters.buildUrl()
method.
final DynamicLinkParameters parameters = DynamicLinkParameters(
uriPrefix: 'https://abc123.app.goo.gl',
link: Uri.parse('https://example.com/'),
androidParameters: AndroidParameters(
packageName: 'com.example.android',
minimumVersion: 125,
),
iosParameters: IosParameters(
bundleId: 'com.example.ios',
minimumVersion: '1.0.1',
appStoreId: '123456789',
),
googleAnalyticsParameters: GoogleAnalyticsParameters(
campaign: 'example-promo',
medium: 'social',
source: 'orkut',
),
itunesConnectAnalyticsParameters: ItunesConnectAnalyticsParameters(
providerToken: '123456',
campaignToken: 'example-promo',
),
socialMetaTagParameters: SocialMetaTagParameters(
title: 'Example of a Dynamic Link',
description: 'This link works whether app is installed or not!',
),
);
final Uri dynamicUrl = await parameters.buildUrl();
To create a short Dynamic Link, build DynamicLinkParameters
the same way, but use the DynamicLinkParameters.buildShortLink()
method.
final ShortDynamicLink shortDynamicLink = await parameters.buildShortLink();
final Uri shortUrl = shortDynamicLink.shortUrl;
To shorten a long Dynamic Link, use the DynamicLinkParameters.shortenUrl method.
final ShortDynamicLink shortenedLink = await DynamicLinkParameters.shortenUrl(
Uri.parse('https://example.page.link/?link=https://example.com/&apn=com.example.android&ibn=com.example.ios'),
DynamicLinkParametersOptions(ShortDynamicLinkPathLength.unguessable),
);
final Uri shortUrl = shortenedLink.shortUrl;