1
我對谷歌文檔感到困惑,同時處理簡單的深度鏈接和Firebase動態鏈接。如何同時處理Firebase DynamicLink和簡單的DeepLink?
要處理平原深層鏈接,我有這樣的:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
String action = intent.getAction();
Uri data = intent.getData();
parseDeepLink(data);
}
要添加火力動態鏈接(和火力程式邀請)的支持,該文檔建議使用:
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
@Override
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
if (pendingDynamicLinkData != null) {
Uri deepLink = pendingDynamicLinkData.getLink();
// Extract invite
FirebaseAppInvite invite = FirebaseAppInvite.getInvitation(pendingDynamicLinkData);
if (invite != null) {
String invitationId = invite.getInvitationId();
// handle invite
}
parseDeepLink(deepLink);
}
}
})
.addOnFailureListener(this, new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
finish();
}
});
然而,使用上面更新的代碼,我無法接收簡單的深度鏈接,因爲pendingDynamicLinkData對於普通的深度鏈接始終爲空。我應該在onFailure()
方法中使用parseDeepLink(getIntent().getData())
嗎?
處理普通DeepLink和Firebase動態鏈接的正確方法是什麼?
是的,我目前正在這樣做,即使用getIntent()。getData()if pendingDyanmicLinkData == null。我最初認爲,普通的deepLinks會觸發onFailure()方法而不是onSuccess()方法。我想知道這是否是正確的方式,或者是否有更好的優雅解決方案可用於此目的。任何想法onFailure()方法被觸發?無論如何我都無法觸發它。 – ArunL
如果失敗是一個動態鏈接,但不能正確處理 - 真正的錯誤情況,不應該發生在正常流程中 –