在 Flutter 移动应用程序中打开重置密码链接

Ari*_*ios 5 deep-linking ios-universal-links flutter android-deep-link

在我的 Flutter 移动应用程序中,身份验证由我自己的服务器 API 处理

\n

目前,我的移动应用程序中有一个询问重置密码功能,它将重置密码链接发送到用户\xe2\x80\x99s 电子邮件收件箱。

\n

此链接会在用户\xe2\x80\x99s浏览器中打开一个网页,用户可以在其中输入新密码。

\n
\n

我不打开网页,而是喜欢此链接,在特定的重置密码路线上打开我的移动应用程序+坚持并向该路线提供重置密码代码

\n

我的链接应该具有什么样的属性才能实现此行为并向路由提供重置代码

\n

有没有办法在不使用 Firebase 动态链接的情况下实现这一切?

\n

我需要在 Flutter 应用程序中设置什么才能实现这些逻辑?

\n

I\xe2\x80\x99m 使用 BLoC 状态管理。

\n

Kau*_*dru 4

您必须使用深层链接,并且在创建深层链接时,如果在移动设备上打开应用程序并导航到该页面,如果应用程序不可用,则将用户带到网页。深层链接未连接到 firebase 身份验证。两者都是即使没有 Firebase 身份验证,不同的服务和深层链接也可以工作。

创建深层链接时进行编辑, 在链接中添加额外的数据,如下所示

Future<Uri> createDynamicLink(String id) async {
      final DynamicLinkParameters parameters = DynamicLinkParameters(
        uriPrefix: 'https://your.page.link',
        link: Uri.parse('https://{your URL}.com/?id=$id'),//<----id=some value is custom data that you wish to pass
        androidParameters: AndroidParameters(
          packageName: 'your_android_package_name',
          minimumVersion: 1,
        ),
        iosParameters: IosParameters(
          bundleId: 'your_ios_bundle_identifier',
          minimumVersion: '1',
          appStoreId: 'your_app_store_id',
        ),
      );
      var dynamicUrl = await parameters.buildUrl();

      return dynamicUrl;
  }
Run Code Online (Sandbox Code Playgroud)

要检索此

final PendingDynamicLinkData data = await FirebaseDynamicLinks.instance.getInitialLink();
Uri deepLink = data?.link;

if (deepLink != null) {
  if (deepLink.queryParameters.containsKey('id')) {
     String id = deepLink.queryParameters['id'];     
     Navigator.of(context).push(MaterialPageRoute(builder: (context) => SomeScreen(id: id);
  }
}
Run Code Online (Sandbox Code Playgroud)

您可以检查此参考 https://blog.devgenius.io/firebase-flutter-dynamic-links-step-by-step-guide-630402ee729b

  • 不确定,但这是一种更简单的方法,我已经在多个项目中尝试过,所以建议相同 (2认同)