createDeepLink method

  1. @override
Future<DeferredLinkResponse?> createDeepLink({
  1. required DeepLinkProvider provider,
  2. Map<String, dynamic>? universalProps,
  3. Map<String, dynamic>? linkProps,
})
override

Creates a deferred deep link for the selected provider.

Implementation

@override
Future<DeferredLinkResponse?> createDeepLink(
    {required DeepLinkProvider provider,
    Map<String, dynamic>? universalProps,
    Map<String, dynamic>? linkProps}) async {
  switch (provider) {
    case DeepLinkProvider.branch:
      try {
        if (universalProps == null && linkProps == null) {
          return DeferredLinkResponse.error(
            errorCode: 'propsMissing',
            errorMessage: 'Universal and Link props are mandatory',
          );
        }
        final BranchResponse<dynamic> branchLinkResponse =
            await BranchLinkManager()
                .createDeepLink(universalProps!, linkProps!);
        if (branchLinkResponse.success) {
          return DeferredLinkResponse.success(
              result: branchLinkResponse.result);
        }
        return DeferredLinkResponse.error(
          errorCode: branchLinkResponse.errorCode,
          errorMessage: branchLinkResponse.errorMessage,
        );
      } catch (_) {
        rethrow;
      }

    case DeepLinkProvider.appsflyer:
      throw LanguageError('Appsflyer Deeplink Provider is in development');
    case DeepLinkProvider.adjust:
      throw LanguageError('Adjust Deeplink Provider is in development');
  }
}