Flutter - Firebase 动态链接不会被 onLink 捕获,而是在 iOS 上打开应用程序

时间:2021-03-02 12:55:29

标签: ios firebase flutter firebase-dynamic-links

在 android 上一切正常,但在 ios 上,当应用程序已经打开时,单击链接会将应用程序置于前台,但未调用 onLink 方法。

链接:

https://<url>/?link=<link>&apn=<apn>&ibi=<bundle>&isi=<isi>

包装:

  • firebase_dynamic_links:^0.6.3

代码

import 'package:firebase_dynamic_links/firebase_dynamic_links.dart';
import 'package:flutter/material.dart';

class DynamicLinksService {

  Future handleDynamicLinks(BuildContext context) async {
    final PendingDynamicLinkData data =
        await FirebaseDynamicLinks.instance.getInitialLink();

    await _handleDynamicLink(context, data);

    FirebaseDynamicLinks.instance.onLink(
        onSuccess: (PendingDynamicLinkData dynamicLinkData) async {
      await _handleDynamicLink(context, dynamicLinkData);
    }, onError: (OnLinkErrorException e) async {
      print('Dynamic link failed: ${e.message}');
    });
  }

  Future _handleDynamicLink(
      BuildContext context, PendingDynamicLinkData data) async {
    final Uri deepLink = data?.link;
    if (deepLink != null) {
      print('_handleDeepLink | deepLink $deepLink');

      await _doSomething(context, deepLink.toString());
    } else {
      print('no deepLink');
    }
  }
}

1 个答案:

答案 0 :(得分:0)

它对我有用! 基本上,您需要在启动时添加 2-3 秒延迟 + 您可以处理 (onSuccess) 之外的深层链接。它终于对我有用了! 检查下面的链接 https://betterprogramming.pub/deep-linking-in-flutter-with-firebase-dynamic-links-8a4b1981e1eb