Лучший способ получить URL после перенаправления в Dart / Flutter - PullRequest
0 голосов
/ 02 мая 2020

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, и я потратил целый день на эту вещь безрезультатно. Трудно отладить эти проблемы из-за неопытности с платформой и отсутствия документации

...