FirebaseInAppMessagingClickListener not Calling android



我正在使用 firebaseInappMessaging ,并且它的作品。然后,我使用FirebaseInAppMessagingClickListener注册操作回电,这是没有呼叫的。

public class InAppMessageClick implements FirebaseInAppMessagingClickListener, FirebaseInAppMessagingImpressionListener, FirebaseInAppMessagingDisplay {
String TAG = "InAppMessageClick";
@Override
public void messageClicked(InAppMessage inAppMessage, Action action) {
    // Determine which URL the user clicked
    String url = action.getActionUrl();
    LogUtils.i(TAG, "Action URL : "+url);
    // Get general information about the campaign
    CampaignMetadata metadata = inAppMessage.getCampaignMetadata();
   Log.i(TAG," Metadata : "+metadata);
}

@Override
public void impressionDetected(InAppMessage inAppMessage) {
    LogUtils.i(TAG, "impressionDetected Action URL : "+inAppMessage.getCampaignMetadata().getCampaignName());
}
@Override
public void displayMessage(InAppMessage inAppMessage, FirebaseInAppMessagingDisplayCallbacks firebaseInAppMessagingDisplayCallbacks) {
    LogUtils.i(TAG, "displayMessage Action URL : "+inAppMessage.getCampaignMetadata().getCampaignName());
}

}

我注册了此单击MainActivity的侦听器

InAppMessageClick inAppMessageClick = new InAppMessageClick();
    FirebaseInAppMessaging.getInstance().setMessageDisplayComponent(inAppMessageClick);
    FirebaseInAppMessaging.getInstance().addClickListener(inAppMessageClick); 

我试图以两种方式注册听众。

InAppMessageClick inAppMessageClick = new InAppMessageClick();
FirebaseInAppMessaging.getInstance().addClickListener(inAppMessageClick);`

FirebaseInAppMessaging.getInstance().addClickListener(inAppMessageClick, new Executor() {
            @Override
            public void execute(Runnable command) {
                LogUtils.i("MainActivity", "FIAM CLICKED EXECUTOR");
            }
       });

`

并使用gradle

    implementation 'com.google.firebase:firebase-inappmessaging-display:18.0.2'
    implementation 'com.google.firebase:firebase-core:17.0.1' 

是否可以与7天前的这个问题相关?https://github.com/firebase/firebase-android-sdk/issues/681

出于某种原因,每次活动都进入后台时,firebaseInappMessgage删除了所有侦听器。您可以通过在DeveloperListenerManager类的removeAllListeners方法上放置一个突破点来看到这一点。在您的主要活动的onResume方法中注册听众是解决此问题的一种方法。

这是您可能想尝试的东西。

  1. 在Firebase控制台中创建一个新的广告系列(请参阅https://firebase.google.com/docs/in-app-messaging/compose-campaign(。不要发布它,因为您无法测试已发布的广告系列。

  2. 在"调度"步骤,选择on_foreground作为触发事件。

  3. 在您的应用程序的onResume()中,添加侦听器。

Firebase.inAppMessaging.addClickListener { inAppMessage, action ->
    // ...
}
Firebase.inAppMessaging.addImpressionListener { inAppMessage ->
    // ...
}
  1. 运行您的应用程序,然后按下主按钮将其放在后台。

  2. 从Firebase Console的Test on device发送测试消息,该消息是"样式和内容"。步骤。

  3. 将您的应用程序推向前景,并点击广告系列的按钮,该按钮未标记为"使用"解雇"作为"行动"。

此时,ClickListenerImpressionListener都应被调用。

应用程序内消息删除除DismissListener以外的所有侦听器时,当应用程序进入后台时,如果要使用on_foreground作为触发事件,则需要在onResume()中添加侦听器。

Dependencies:
implementation platform('com.google.firebase:firebase-bom:26.6.0')
implementation 'com.google.firebase:firebase-analytics-ktx'
implementation 'com.google.firebase:firebase-inappmessaging-display-ktx'
implementation 'com.google.firebase:firebase-inappmessaging-ktx'
code on MainActivity onCreateMethod:
val firebaseIam = Firebase.inAppMessaging
firebaseIam.addClickListener { inAppMessage, action ->
            //write your functionality
            Log.d("here","successful)
        }

最新更新