无法读取flutter应用程序内的firebase动态链接

问题描述 投票:0回答:1

我正在尝试读取我在 flutter 应用程序中在 firebase 上创建的动态链接,我完成了所有配置,但我总是得到 null 作为值。

这是我的 firebase 配置:

短链接:https://******.page.link/test

动态链接:https://********.tn/restaurant?id=64fdf73f3ac564fe091a22e6

我的 Android 清单文件代码:

 <meta-data 
                android:name="flutter_deeplinking_enabled" 
                android:value="true"/>
            <intent-filter android:autoVerify="true">
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="https" />
                <data android:host="******.page.link" />
            </intent-filter>

这是我尝试阅读动态链接的方式:

Future<void> initDynamicLinks() async {
  print("Initial DynamicLinks");
  FirebaseDynamicLinks dynamicLinks = FirebaseDynamicLinks.instance;

  dynamicLinks.onLink.listen((dynamicLinkData) {
    final Uri uri = dynamicLinkData.link;
    final queryParams = uri.queryParameters;
    if (queryParams.isNotEmpty) {
      print("Incoming Link :" + uri.toString());
    } else {
      print("No Current Links");
    }
  });

  PendingDynamicLinkData? data = await dynamicLinks
      .getDynamicLink(Uri.parse("https://******.page.link/test"));
  final Uri uri = data!.link;
  if (uri != null) {
    print("Found The Searched Link: " + uri.toString());
  } else {
    print("Search Link Not Found");
  }
}

这是我的主要功能:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  initDynamicLinks();
}

它不会返回任何内容,实际上它不会监听任何链接,请注意,我在调试模式下在 Android 物理设备上运行它。感谢您的帮助!

flutter firebase firebase-dynamic-links
1个回答
0
投票

将整个块移至单独的小部件并调用 initState 内的函数解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.