为什么我无法从 Android 中的 Firebase deep link url 获取查询参数?

Why I am unable to get query parameters from Firebase deep link url in Android?

我正在尝试从中获取查询参数 短动态 link : https://easyloans.page.link/test

长动态 Link : https://easyloans.page.link/?link=https://www.availfinance.in&apn=com.avail.easyloans.android&utm_campaign=Test_Campaign_Name&utm_medium=Test_Medium&utm_source=Test_Source

清单:

<activity android:name=".Activites.DynamicLink">
    <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="easyloans.page.link"
                android:scheme="http"
                android:pathPrefix="/"
                android:pathPattern=".*"/>
            <data
                android:host="easyloans.page.link"
                android:scheme="https"
                android:pathPrefix="/"
                android:pathPattern=".*"/>
    </intent-filter>
</activity>

在Android Activity:

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.d(TAG, "source : " + pendingDynamicLinkData.getLink().getQueryParameter("utm_source"));
            }

            Log.d(TAG, "link " + deepLink);

        }
    })
    .addOnFailureListener(this, new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Log.d(TAG, "getDynamicLink:onFailure", e);
        }
    });

我收到的输出是: link https://www.availfinance.in 和来源:null(我期待 Test_Source

getLink() 方法 return 是您在长 FDL 上设置的 link 参数,在您的示例中 link 就是 return编辑:link=https://www.availfinance.in

UTM 参数自动传递给 Google Analytics for Firebase。

pendingDynamicLinkData.getLink().getQueryParameter("foo") 只有在 link 参数中包含的 URL 上才会 return 一个值,例如如果您的 link 是 link=https://www.availfinance.in/?foo=bar(使用适当的 URL 编码)。