我无法通过我的应用程序从 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>
在 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);
}
});
现在是时候测试您的应用程序了:
google 搜索您的 url 即 example555.page.link
之后它会将您重定向到应用程序,然后您填写并输出。
如果这有效,谢谢。
我正在尝试从 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>
在 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); } });
现在是时候测试您的应用程序了: google 搜索您的 url 即 example555.page.link 之后它会将您重定向到应用程序,然后您填写并输出。 如果这有效,谢谢。