【问题标题】:FirebaseInAppMessagingClickListener not Calling androidFirebaseInAppMessagingClickListener 不调用 android
【发布时间】:2019-12-13 02:00:27
【问题描述】:

我正在使用 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 的 onCreate 中注册了这个点击监听器

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' 

【问题讨论】:

    标签: java android firebase onclicklistener firebase-in-app-messaging


    【解决方案1】:

    可能与 7 天前打开的这个问题有关吗? https://github.com/firebase/firebase-android-sdk/issues/681

    【讨论】:

    • 是的,直到现在我还没有找到任何解决方案。
    • @AbhishekKumarSrivastav 我仍然有问题,即使升级到最新版本。您找到任何解决方法了吗?
    【解决方案2】:

    由于某种原因,每次活动进入后台时,FirebaseInAppMessaging 都会删除所有侦听器。您可以通过在DeveloperListenerManager 类的removeAllListeners 方法上设置一个断点来查看这一点。 在你的 main Activity 的onResume 方法中注册你的监听器是处理这个问题的一种方法。

    【讨论】:

      【解决方案3】:
      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)
      
              }
      

      【讨论】:

      • 请为您的答案添加一些解释
      • 即使在测试 InApp 消息时,上述方法也会为您提供消息点击侦听器,但请确保在创建广告系列时取消选中“使用解除作为操作”框
      猜你喜欢
      • 2017-08-07
      • 2017-09-08
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多