tldr Я ищу лучший способ для достижения этой функциональности (получить URL после перенаправления) во флаттере, чтобы он работал на рабочем столе / ios / android. Uni_links, кажется, не работает, но, безусловно, может быть моей ошибкой, так как я новичок во Flutter и действительно в приложениях в целом.
Я пытаюсь выяснить, как получить перенаправленный URL в моем приложении Flutter. Моя программа Flutter запускает страницу аутентификации, используя url_launcher:
if (await canLaunch(authUri.toString())) {
await launch(authUri.toString());
}
Затем пользователь заполняет страницу и принимает ее, которая перенаправляет их на новую страницу, с которой мне нужно получить URL, чтобы узнать, подтвердил ли пользователь свою учетную запись или нет.
Я пытался использовать для этой цели пакет uni_links через что-то вроде
Future<Uri> initUniLinks(redirectUri) async {
final linksStream = getLinksStream().listen((String link) async {
if (link.startsWith(redirectUri)) {
responseUri = link;
}
});
return responseUri;
}
с вызовом типа
final responseUri = await initUniLinks(redirectUri);
в main, но это приводит к эта ошибка:
MissingPluginException(No implementation found for method listen on channel uni_links/events)
трассировка:
трепетание: ══╡ ИСКЛЮЧЕНИЕ СПИСОК БИБЛИОТЕКИ УСЛУГ ╞═══════════════════ ══════════════════════════════════════════════ flutter: следующее исключение MissingPluginException было сгенерировано при активации потока платформы на канале flutter: uni_links / events: flutter: MissingPluginException (реализация для метода прослушивания канала uni_links / events не найдена) flutter: flutter: При возникновении исключения это был стек: flutter: # 0 MethodChannel._invokeMethod (package: flutter /src/services/platform_channel.dart:154:7) flutter: flutter: # 1 MethodChannel.invokeMethod (пакет: flutter / src / services / platform_channel.dart: 329: 12) flutter: # 2 EventChannel.receiveB roadcastStream. (пакет: flutter / src / services / platform_channel.dart: 519: 29) flutter: # 3 EventChannel.receiveBroadcastStream. (пакет: flutter / src / services / platform_channel.dart: 505: 64) flutter: # 8 CastStream.listen (dart: _internal / async_cast.dart: 19: 17) flutter: # 9 initlink (пакет: spotifytest / main.dart : 63: 40) flutter: # 10 main (пакет: spotifytest / main.dart: 48: 27) flutter: # 19 launch (пакет: url_launcher / url_launcher.dart) flutter: # 28 MethodChannel._invokeMethod (пакет: flutter / src /services/platform_channel.dart) флаттер: (пропущено 33 кадра из дротика: asyn c и дротика: asyn c -патч) ══════════════════════════════════════════════════ ════════════════════════════════
, который кажется неразрешенным ( Я думаю, что это из-за несовместимости с Flutter на рабочем столе или существует большая вероятность того, что эта ошибка связана с зависимостями, которые я пока не понимаю), поэтому я ищу другую библиотеку или что-то, что я могу использовать для достижения этой функциональности. Я новичок в Dart / Flutter, и я потратил целый день на эту вещь безрезультатно. Трудно отладить эти проблемы из-за неопытности с платформой и отсутствия документации