为了账号安全,请及时绑定邮箱和手机立即绑定

FirebaseInAppMessagingClickListener 不调用 android

FirebaseInAppMessagingClickListener 不调用 android

慕哥6287543 2023-05-17 16:56:56
我正在使用FirebaseInAppMessaging并且可以正常工作。然后我使用注册操作回调FirebaseInAppMessagingClickListener,它没有调用。public class InAppMessageClick implements FirebaseInAppMessagingClickListener, FirebaseInAppMessagingImpressionListener, FirebaseInAppMessagingDisplay {String TAG = "InAppMessageClick";@Overridepublic 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);}@Overridepublic void impressionDetected(InAppMessage inAppMessage) {    LogUtils.i(TAG, "impressionDetected Action URL : "+inAppMessage.getCampaignMetadata().getCampaignName());}@Overridepublic 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' 
查看完整描述

3 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

会不会和7天前打开的这个issue有关? https://github.com/firebase/firebase-android-sdk/issues/681


查看完整回答
反对 回复 2023-05-17
?
大话西游666

TA贡献1817条经验 获得超14个赞

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

  1. 在 Firebase 控制台中创建一个新的活动,暂时不要发布它,因为您无法测试已发布的活动。

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

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

Firebase.inAppMessaging.addClickListener { inAppMessage, action ->

    // ...

}


Firebase.inAppMessaging.addImpressionListener { inAppMessage ->

    // ...

}

运行您的应用程序,然后按 HOME 按钮将其置于后台。


从 Firebase 控制台发送测试消息Test on device,该消息位于“样式和内容”步骤中。


将您的应用程序置于前台,然后点击未标记为“使用关闭作为操作”的广告系列按钮。


此时,应该同时调用ClickListener和。ImpressionListener


In-App Messaging 会删除所有侦听器,除非应用程序进入后台,因此如果您想用作触发事件,则DismissListener需要添加侦听器。onResume()on_foreground


查看完整回答
反对 回复 2023-05-17
?
跃然一笑

TA贡献1826条经验 获得超6个赞

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



查看完整回答
反对 回复 2023-05-17
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

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)


        }


查看完整回答
反对 回复 2023-05-17
  • 3 回答
  • 0 关注
  • 180 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信