【问题标题】:Flutter Firebase Dynamic Links Not working on facebookFlutter Firebase 动态链接在 facebook 上不起作用
【发布时间】:2020-08-27 13:46:20
【问题描述】:

我正在使用动态链接来创建链接并将其从我的应用程序分享到社交媒体平台,我尝试在 WhatsApp 和 messager 上分享,它运行良好,没有任何问题。

尝试从 Facebook 打开链接时的唯一例外是,它首先打开 InAppBrowser,然后打开 Play 商店而不是我的应用程序!!!

如果对此问题有任何调整或解决方法,请在此处分享,因为所有应用营销露营都取决于 Facebook。

我不知道该放什么代码,因为 Facebook 是这里唯一的例外!

不管怎样,下面是分享和发起的代码:

class ShareBloc extends Bloc<ShareEvent, ShareState> {

  final GlobalKey<NavigatorState> navigateKey;

  ShareBloc(this.navigateKey): assert(navigateKey != null);

  @override
  ShareState get initialState => ShareInitial();

  @override
  Stream<ShareState> mapEventToState(
    ShareEvent event,
  ) async* {

    if ( event is OnDynamicLinkInitial ) {


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

      if ( deepLink != null ) {
        print(deepLink.path);
        navigateKey.currentState.pushNamed(SearchPage.routeName);
      }

      FirebaseDynamicLinks.instance.onLink(
        onSuccess: (PendingDynamicLinkData pendingDynamicLinkData) async {
          final Uri deepLink = pendingDynamicLinkData?.link;

          if (deepLink != null) {
            print(deepLink.path);
            navigateKey.currentState.pushNamed(SearchPage.routeName);
          }
        },
        onError: (OnLinkErrorException error) async {
          print("ERR DeepLink: $error");
        }
      );
    }


    if ( event is ShareOnSocial ) {
      try {
        yield ShareLoading();
        final DynamicLinkParameters dynamicLinkParameters = DynamicLinkParameters(
          uriPrefix: 'http://xxx.page.link', 
          link: Uri.parse('https://xxx.xxx.com/xxx/xxx/${event.post.id}'),
          androidParameters: AndroidParameters(
            packageName: 'com.xxx.xxx',
            minimumVersion: 17,
          ),
          dynamicLinkParametersOptions: DynamicLinkParametersOptions(
            shortDynamicLinkPathLength: ShortDynamicLinkPathLength.short,
          ),
          socialMetaTagParameters: SocialMetaTagParameters(
            title: event.post.title,
            // description: event.post.excerpt,
            imageUrl: Uri.parse(event.post.image)
          ),
          navigationInfoParameters: NavigationInfoParameters(
            forcedRedirectEnabled: true
          )
        );

        final shortDynamicLink = await dynamicLinkParameters.buildShortLink();
        final Uri shortUrl = shortDynamicLink.shortUrl;

        await Share.share(
          "${event.post.title} $shortUrl",
          subject: event.post.title,
        );

        yield ShareSuccess();
      } catch (e) {
        yield ShareFailure();
      }
    }
  }
}

【问题讨论】:

  • 你是怎么解决的?我有同样的问题。
  • 没有解决方案,这是谷歌的一个错误,你必须等到他们修复它或者你使用另一个包,比如我已经完成的 uni_links flutter,它工作得很好。
  • 你可以从这里查看的 uni_links 包:pub.dev/packages/uni_links

标签: firebase flutter dart firebase-dynamic-links


【解决方案1】:

我的资源很少

资源:

https://medium.com/dev-genius/firebase-flutter-dynamic-links-step-by-step-guide-630402ee729b

https://pub.dev/packages/firebase_dynamic_links

Firebase 设置: 在 Firebase 动态链接部分设置 app.domain.com,并提供 TXT DNS 更改。

使用 Flutter 代码本身动态生成的链接,因此无需在 Firebase 仪表板中添加任何链接。

代码

确保使用最新的软件包:

Pubspec.yaml

firebase_core: ^0.7.0
firebase_auth: ^0.20.0+1
firebase_dynamic_links: ^0.7.0+1

Info.plist

<key>FirebaseDynamicLinksCustomDomains</key>
<array>
    <string>https://app.yourdomain.com</string>
</array>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-21
    • 2017-01-29
    • 1970-01-01
    • 2018-02-19
    • 1970-01-01
    • 2020-05-17
    相关资源
    最近更新 更多