Вот чего я пытаюсь достичь:
Пользователь запрашивает сброс пароля.
Firebase отправляет электронное письмо со ссылкой для сброса (содержащей oobCode в качестве параметра запроса).
Когда пользователь нажимает ссылку, приложение должно:
Открываться автоматически ( если установлено).
Извлеките параметр oobCode из URL-адреса.
Перейдите к экрану сброса пароля, где пользователь может ввести новый пароль.
Я попробовал следующий код для обработки глубоких ссылок:
Код: Выделить всё
import 'dart:async';
import 'package:app_links/app_links.dart';
import 'package:flutter/material.dart';
class DeepLinkHandler {
static final AppLinks _appLinks = AppLinks();
static StreamSubscription? _linkSubscription;
static Future handleAppLink(BuildContext context) async {
_linkSubscription = _appLinks.uriLinkStream.listen((uri) {
debugPrint('Deep link received: $uri');
_processDeepLink(context, uri);
});
final Uri? initialLink = await _appLinks.getInitialLink();
if (initialLink != null) {
debugPrint('Initial deep link: $initialLink');
_processDeepLink(context, initialLink);
}
}
static void _processDeepLink(BuildContext context, Uri uri) {
if (uri.host == 'example.firebaseapp.com' || uri.host == 'example.web.app') {
final oobCode = uri.queryParameters['oobCode'];
if (oobCode != null) {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => ResetPasswordScreen(oobCode)),
);
}
}
}
static void dispose() {
_linkSubscription?.cancel();
}
}
Приложение не открывается при нажатии ссылки сброса.
app_links, похоже, неправильно распознает глубокие ссылки.
Я не уверен, правильно ли настроены глубокие ссылки Firebase в моем проекте.
Я создал веб-страницу, которая отправляет пользователя обратно в приложение для сброса пароля. сброс страницы
Подробнее здесь: https://stackoverflow.com/questions/792 ... -app-links
Мобильная версия