Подскажите, пожалуйста, как отправить и получить аргументы, используя плагин flutter firebase_dynamic_links [https://pub.dev/packages/firebase_dynamic_links#-readme-tab-]?
Я хочу передать такие параметры, как имя пользователя и пароль в Deeplink / динамической ссылке, следующим образом:
uriPrefix: 'https://test.page.link/appinvite?username=Test&password=123456',
link: Uri.parse('https://test.page.link/appinvite?username=Test&password=123456'),
Это правильный способ передачи данных?
После этого я использую приведенный ниже код для извлечения данных,
await FirebaseDynamicLinks.instance.getInitialLink();
final Uri deepLink = data?.link;
Но он предоставляет мнефиктивный веб-URL, который я добавил в консоль firebase для динамических ссылок firebase в URL-адресе Deep Link
В настоящее время я могу открыть приложение по динамической ссылке firebase, но не могу получить пользовательские параметры.
Мы будем благодарны за любую помощь.
Обновленный код:
Для отправки приглашения:
_generateAndShareDynamicLink() async {
final DynamicLinkParameters parameters = DynamicLinkParameters(
uriPrefix: 'https://test.page.link/groupinvite',
link: Uri.parse('https://test.page.link/groupinvite'),
androidParameters: AndroidParameters(
packageName: 'com.test.flutter_authentication',
minimumVersion: 0,
),
dynamicLinkParametersOptions: DynamicLinkParametersOptions(
shortDynamicLinkPathLength: ShortDynamicLinkPathLength.unguessable,
),
);
Uri url = await parameters.buildUrl();
shareURL(Uri.https(url.authority, url.path, {"username": "Test"}));
}
Для получения данных внутри initState ():
FirebaseDynamicLinks.instance.onLink(
onSuccess: (PendingDynamicLinkData dynamicLink) async {
final Uri deepLink = dynamicLink?.link;
_scaffoldKey.currentState.showSnackBar(SnackBar(content: Text("deepLink2 : ${deepLink}",)));
if (deepLink != null) {
Map sharedListId = deepLink.queryParameters;
print("sharedListId : ${sharedListId}");
String username=sharedListId["username"];
print("username : ${username}");
Navigator.pushNamed(context, deepLink.path);
}
}, onError: (OnLinkErrorException e) async {
print('onLinkError');
print(e.message);
});
Все еще извлеченные данные равны нулю.
Кто-нибудь может помочь?