我无法通过我的应用程序从 firebase 检索动态 link,因为 pendingdynamiclinkdata 为空

I cannot retrieve dynamic link from firebase through my application as pendingdynamiclinkdata is null

我正在尝试从 firebase 检索 deeplink URL 但总是显示为空。

我在清单中添加了以下代码,我也尝试使用短动态 URL 即 https://example555.page.link/y6N7 但它仍然显示为空。

            <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>
            <data
                android:host="example555.page.link"
                android:scheme="https"
                 />

        </intent-filter>

这是我检索动态代码 link :

             FirebaseDynamicLinks.getInstance()
             .getDynamicLink(getIntent())
             .addOnSuccessListener(this, new 
             OnSuccessListener<PendingDynamicLinkData>() {
            @Override
             public void onSuccess(PendingDynamicLinkData 
             pendingDynamicLinkData) {
              Uri deepLink = null;

                if (pendingDynamicLinkData != null) {
                    deepLink = pendingDynamicLinkData.getLink();
                }
            }
        })
        .addOnFailureListener(this, new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.w(TAG, "getDynamicLink:onFailure", e);
            }
        });

好吧,在我苦苦思索了这么多小时之后,我找到了一个解决方案,它帮助我找到了解决方案:

从头说起太糟糕了: 1. 创建动态 link。 2. 将以下代码添加到您的清单

      <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <data
            android:host="example555.page.link"
            android:scheme="https"/>

    </intent-filter>
  1. 在 Main activity 中添加此代码:

           FirebaseAnalytics mFirebaseAnalytics;
            mFirebaseAnalytics=FirebaseAnalytics.getInstance(this);
    
            FirebaseDynamicLinks.getInstance()
            .getDynamicLink(getIntent())
            .addOnSuccessListener(this, new 
             OnSuccessListener<PendingDynamicLinkData>() {
                @Override
                public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
                    // Get deep link from result (may be null if no link is found)
                    Uri deepLink = null;
    
                    if (pendingDynamicLinkData != null) {
                        deepLink = pendingDynamicLinkData.getLink();
    
                        Log.w("deepLink", "" + deepLink);
                   String cn=String.valueOf(deepLink.getQueryParameters("utm_campaign"));
                        String cm = String.valueOf(deepLink. getQueryParameters("utm_medium"));
                        String cs = String.valueOf(deepLink.getQueryParameters("utm_source"));
    
                        if (cs != null && cn != null) {
                            Bundle params = new Bundle();
                            params.putString(FirebaseAnalytics.Param.CAMPAIGN, cn);
                            params.putString(FirebaseAnalytics.Param.MEDIUM, cm);
                            params.putString(FirebaseAnalytics.Param.SOURCE, cs);
    
                            mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.CAMPAIGN_DETAILS, params);
                            mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.APP_OPEN, params);
                        }
    
    
                    }
                }
            })
            .addOnFailureListener(this, new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Log.w("TAG", "getDynamicLink:onFailure", e);
                }
            });
    
  2. 现在是时候测试您的应用程序了: google 搜索您的 url 即 example555.page.link 之后它会将您重定向到应用程序,然后您填写并输出。 如果这有效,谢谢。