Я тоже с этим борюсь.
К сожалению, похоже, что сейчас нет пути к этому. Firebase вызовет ваш пользовательский FirebaseInAppMessagingClickListener
, но затем попытается перейти к указанному URL действия независимо от этого.
Это выдержка из FirebaseInAppMessagingDisplay
:
actionListener = new OnClickListener() {
public void onClick(View v) {
if (FirebaseInAppMessagingDisplay.this.callbacks != null) {
FirebaseInAppMessagingDisplay.this.callbacks.messageClicked(action);
}
CustomTabsIntent i = (new Builder()).setShowTitle(true).build();
i.launchUrl(activity, Uri.parse(action.getActionUrl()));
FirebaseInAppMessagingDisplay.this.notifyFiamClick();
FirebaseInAppMessagingDisplay.this.removeDisplayedFiam(activity);
FirebaseInAppMessagingDisplay.this.inAppMessage = null;
FirebaseInAppMessagingDisplay.this.callbacks = null;
}
};
Как вы можете видеть, Firebase будет проходить через все пользовательские обратные вызовы, но затем попытаться выполнить навигацию независимо от launchUrl(activity, Uri.parse(action.getActionUrl()))
.
Единственный вариант, который я могу придумать, - это правильно поддерживать глубокие ссылки в вашем приложении как рекомендуется в Настройка сообщений обмена сообщениями в приложении Firebase .